Benj:
我猜你现在已经找到了答案,但是我看到没有人回答这个问题,所以我来回答一下。
如果我可以提供一个替代aliases文件的建议。看起来你正在尝试为git解决这个问题。
我发现在Windows中做到这一点的最好方法是编辑~/.bashrc
文件。在大多数Windows机器上,它应该位于C:\Users\<USERNAME>\.bashrc
下。
你可以创建一个函数,例如:
function MergeLocDistFn {
local co_branch=$1
local merge_branch=$2
echo ">> Debug Command: git checkout ${co_branch}"
git checkout ${co_branch}
echo ">> Debug Command: git merge --ff-only --verbose origin/${merge_branch} || git rebase --preserve-merges --verbose origin/${merge_branch}"
git merge --ff-only --verbose origin/${merge_branch} || git rebase --preserve-merges --verbose origin/${merge_branch}
}
然后,您可以在~/.bashrc
文件中创建别名,如下所示:
alias mergelocdist=MergeLocDistFn
alias mm='MergeLocDistFn master master'
这种方法的优点在于它使您可以对函数进行高级处理,正如我在这里展示的那样,还可以通过echo语句进行调试。
请参阅附带的示例输出图片。
来自bashrc的示例输出
另外,请注意,如果您更喜欢在PowerShell提示符下执行此操作,则修改PowerShell配置文件会更加容易,只需让我知道,我会向您展示如何操作。
另外,您还可以为当前分支在.bashrc中创建一个函数。以下是一个示例函数:
function current_branch() {
ref=$(git symbolic-ref HEAD 2> /dev/null) || \
ref=$(git rev-parse --short HEAD 2> /dev/null) || return
echo ${ref#refs/heads/}
}
这是使用current_branch函数的示例:
alias gpush='git push -u origin $(current_branch)'
我希望这可以帮到您,如果您对此需要任何澄清,请告诉我。
cloneIt
,可以通过一个命令来配置所有内容。根据你的团队Git约定进行自定义。 - Michael Erpenbeck