列出尚未推送到源的 Git 提交 [重复]
Posted
技术标签:
【中文标题】列出尚未推送到源的 Git 提交 [重复]【英文标题】:List Git commits not pushed to the origin yet [duplicate] 【发布时间】:2010-06-20 18:50:06 【问题描述】:可能重复:Viewing Unpushed Git Commits
如何列出所有尚未推送到源的提交?
另外,如何确定具有特定哈希的提交是否已经被推送到源?
【问题讨论】:
从 Git 2.5+(2015 年第二季度)开始,实际答案将是git log @push..
。在my answer at "Viewing Unpushed Git Commits"中查看新的快捷方式@push
(引用您要推送到的远程跟踪分支)
【参考方案1】:
git log origin/master..master
或者,更一般地说:
git log <since>..<until>
您可以将它与 grep 一起使用来检查特定的已知提交:
git log <since>..<until> | grep <commit-hash>
或者你也可以使用 git-rev-list 来搜索特定的提交:
git rev-list origin/master | grep <commit-hash>
【讨论】:
如果您已经git fetch
'd,并且源包含更多您尚未提取的提交怎么办?那么origin/develop
比develop
更新 - 这个答案是否仍会给出尚未推送到原点的预期提交列表?
@Kidburla 是的,这在那种情况下仍然有效。 git log origin/develop..develop
将列出尚未推送到源开发分支的所有提交。相反,git log develop..origin/develop
将列出所有在 origin 的开发中但尚未拉入本地开发的提交。
如果<until>
应该是当前的 HEAD(签出分支上的最后一次提交),那么它可以简单地省略。这两个点仍然是必需的:git log origin/master..
(与git log origin/master..HEAD
相同)
用一般情况(第二个 sn-p)很好地解释了。我希望该操作有一个命令或快捷方式,因为它非常有用且经常需要。有没有办法定义一个更短的版本来获取不在远程但驻留在本地分支上的提交?
"git log origin/master..HEAD" 对我有用。【参考方案2】:
如何确定是否已经将具有特定哈希的提交推送到源?
# list remote branches that contain $commit
git branch -r --contains $commit
【讨论】:
试试这个:git cherry -v origin/master以上是关于列出尚未推送到源的 Git 提交 [重复]的主要内容,如果未能解决你的问题,请参考以下文章