举个例子,假设你想写一个 git 别名,它显示了当前分支和它的origin
伙伴之间的区别。
在 master 的特定情况下,它将如下所示:
[alias]
top = log --oneline --graph --decorate master ^origin/master
如何更换master
?
如果您的 git 版本不是太旧,则该字符串@{u}
表示“上游”,即当前分支正在跟踪的任何来源/foo。(并且:HEAD
表示“当前分支,如果在分支上”,并且在..
语法中省略某些内容表示HEAD
。)因此,@{u}..
表示“HEAD 中不在其上游的所有内容”:
[alias]
top = log --oneline --graph --decorate @{u}..
一种方法:
[alias]
top = "!git log --oneline --graph --decorate `git rev-parse --abbrev-ref HEAD` ^origin/`git rev-parse --abbrev-ref HEAD`"
它将别名转换为 shell 命令,从而使您能够嵌套命令。