我如何查看我所做的任何尚未推送到远程存储库的本地提交?有时,git状态会显示我的分支是在origin/master之前提交的X,但并不总是这样。
这是我安装Git的bug,还是我遗漏了什么?
我如何查看我所做的任何尚未推送到远程存储库的本地提交?有时,git状态会显示我的分支是在origin/master之前提交的X,但并不总是这样。
这是我安装Git的bug,还是我遗漏了什么?
当前回答
您可以使用git-log执行此操作:
git log origin/master..
这假设origin是上游远程的名称,master是上游分支的名称。在..之后删除任何修订名称。。暗示HEAD,它列出了尚未推送的新提交。
其他回答
我真的迟到了,我不知道它是什么时候实现的,但要了解git push会做什么,只需使用--dry-run选项:
$ git push --dry-run
To ssh://bitbucket.local.lan:7999/qarepo/controller.git
540152d1..21bd921c imaging -> imaging
git diff origin
假设您的分支被设置为跟踪原点,那么这应该会向您显示差异。
git log origin
将向您提供提交的摘要。
git show
将显示本地提交中的所有差异。
git show --name-only
将显示本地提交id和提交名称。
这对我来说效果更好:
git log --oneline @{upstream}..
or:
git log --oneline origin/(remotebranch)..
我建议你去看剧本https://github.com/badele/gitcheck,我已经编写了这个脚本,用于一次性签入所有git存储库,它显示了谁没有提交,谁没有推送/拉取。
这里是一个示例结果