在git别名中引用当前分支和origin / <current> </current>

时间:2013-09-23 13:39:42

标签: git alias

作为示例,假设您要编写一个git别名,该别名显示当前分支与其origin伙伴之间的差异。

在master的特定情况下,它将如下所示:

[alias]
    top = log --oneline --graph --decorate master ^origin/master

如何替换master

2 个答案:

答案 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命令,这使您能够嵌套命令。