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

eri*_*ork 9 git alias

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

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

[alias]
    top = log --oneline --graph --decorate master ^origin/master
Run Code Online (Sandbox Code Playgroud)

如何更换master

tor*_*rek 18

如果你的git版本不是很荒谬,那么字符串@{u}意味着"上游",即当前分支跟踪的任何origin/foo.(并且:HEAD表示"当前分支,如果在分支上",并且在..语法中省略某些东西HEAD.)因此,@{u}..意味着"HEAD中的所有内容都不在其上游":

[alias]
    top = log --oneline --graph --decorate @{u}..
Run Code Online (Sandbox Code Playgroud)

  • 是的,要查看的地方在[`git-rev-parse`]的文档中(https://www.kernel.org/pub/software/scm/git/docs/git-rev-parse.html)和[`GIT-REV-list`](https://www.kernel.org/pub/software/scm/git/docs/git-rev-list.html).有很多时髦的语法选项,我一直使用`rev ^`,很少使用`rev ^ {commit}`,并且仍然尝试更多地使用`branch @ {n}. (3认同)
  • 你能链接一些文件吗?你怎么知道`@ {u}`意味着上游?还有其他`@ {...}`选项吗? (2认同)