列出尚未推送到源的 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/developdevelop 更新 - 这个答案是否仍会给出尚未推送到原点的预期提交列表? @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 提交 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

git 强制推送到master

恢复我所做但尚未推送的所有内容[重复]

查看未推送的 Git 提交

完全撤消提交并推送到远程[重复]

Node Js,Git,Heroku:Git承诺不推送git,因为大文件过去曾提交了几次提交[重复]

git能直接把本地仓库推送到远程仓库吗?