tin*_*ike 2 git commit git-branch
即使我没有上游分支,我也想在我的分支上显示所有本地提交。如果我有上游,我通常使用:
$ git log @{u}..$(git branch --show-current)
但是如果没有上游分支,这不起作用
$ git log --branches --not --remotes
这接近我想要的,但这显示了所有分支上的所有本地提交。我想过滤它以仅显示我对当前分支的提交。
有没有办法通过管道或者有其他方法?
简短版本:尝试
\ngit log HEAD --not --remotes\nRun Code Online (Sandbox Code Playgroud)\n更多细节 :
\n这里的技巧是,如果没有上游集,就很难知道何时停止。不需要 \xe2\x80\x94 的通常版本$(git branch --show-current)\xe2\x80\x94 是使用@{u}..or @{u}..HEAD(无论你喜欢哪个),这意味着从 开始HEAD,即当前提交,并在到达上游可到达的任何提交时停止。但这使用的是“上游”。
\xe2\x80\x94如何“知道何时停止”\xe2\x80\x94的技巧是重新制定你的公式,就像你所做的那样:
\n\n\n我也尝试过 Aleksander Monk 的回答:
\n\n
$ git log --branches --not --remotes这接近我想要的,但这显示了所有本地提交\非所有分支。我想过滤此内容以仅显示我对当前分支的提交。
\n
这个版本的问题在于它的正面引用是--branches,这意味着所有分支名称。它的负面引用是--remotes(所有远程跟踪名称),这就是您想要的;但你想要HEAD作为积极的参考。HEAD所以只需换成--branches:
git log HEAD --not --remotes\nRun Code Online (Sandbox Code Playgroud)\n你就准备好了。
\n(请注意,使用时@{u}..您可以完全省略 HEAD,因为它是由两个点暗示的,但对于这个特定命令,您根本不能省略 。但是,如果您愿意HEAD,您可以使用单字符短名称@来表示。 HEAD.)