11

举个例子,假设你想写一个 git 别名,它显示了当前分支和它的origin伙伴之间的区别。

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

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

如何更换master

4

2 回答 2

20

如果您的 git 版本不是太旧,则该字符串@{u}表示“上游”,即当前分支正在跟踪的任何来源/foo。(并且:HEAD表示“当前分支,如果在分支上”,并且在..语法中省略某些内容表示HEAD。)因此,@{u}..表示“HEAD 中不在其上游的所有内容”:

[alias]
    top = log --oneline --graph --decorate @{u}..
于 2013-09-23T18:32:48.423 回答
2

一种方法:

[alias]
    top = "!git log --oneline --graph --decorate `git rev-parse --abbrev-ref HEAD` ^origin/`git rev-parse --abbrev-ref HEAD`"

它将别名转换为 shell 命令,从而使您能够嵌套命令。

于 2013-09-23T13:51:08.340 回答