Benj:我怀疑你现在已经找到了答案,但我看到没有人回答这个问题,所以我会的。
如果我可以对别名文件提出替代建议。看起来你正试图为 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)'
我希望他的帮助,如果您需要对此进行任何澄清,请告诉我。