作为示例,假设您要编写一个git别名,该别名显示当前分支与其origin
伙伴之间的差异。
在master的特定情况下,它将如下所示:
[alias]
top = log --oneline --graph --decorate master ^origin/master
如何替换master
?
答案 0 :(得分:18)
如果您的git版本不是很荒谬,字符串@{u}
表示“上游”,即当前分支正在跟踪的任何origin / foo。 (并且:HEAD
表示“当前分支,如果在分支上”,并且在..
语法中省略某些内容意味着HEAD
。)因此,@{u}..
表示“所有内容HEAD不在其上游“:
[alias]
top = log --oneline --graph --decorate @{u}..
答案 1 :(得分:2)
一种方法:
[alias]
top = "!git log --oneline --graph --decorate `git rev-parse --abbrev-ref HEAD` ^origin/`git rev-parse --abbrev-ref HEAD`"
将alias转换为shell命令,这使您能够嵌套命令。