我如何查看我所做的任何尚未推送到远程存储库的本地提交?有时,git状态会显示我的分支是在origin/master之前提交的X,但并不总是这样。
这是我安装Git的bug,还是我遗漏了什么?
我如何查看我所做的任何尚未推送到远程存储库的本地提交?有时,git状态会显示我的分支是在origin/master之前提交的X,但并不总是这样。
这是我安装Git的bug,还是我遗漏了什么?
当前回答
你可以试试。。。。
gitk
我知道这不是一个纯粹的命令行选项,但如果你已经安装了它,并且在GUI系统上,这是一个很好的方法,可以准确地看到你想要的东西,还有更多。
(事实上,我有点惊讶,到目前为止没有人提到它。)
其他回答
这不是一个bug。您可能看到的是自动合并失败后的git状态,其中从远程获取更改但尚未合并。
要查看本地回购和远程回购之间的提交,请执行以下操作:
git fetch
这是100%安全的,不会模拟您的工作副本。如果有更改,git状态将显示X在原始/主之前提交。
现在,您可以显示远程而非本地的提交日志:
git log HEAD..origin
我真的迟到了,我不知道它是什么时候实现的,但要了解git push会做什么,只需使用--dry-run选项:
$ git push --dry-run
To ssh://bitbucket.local.lan:7999/qarepo/controller.git
540152d1..21bd921c imaging -> imaging
这给出了origin/master和HEAD之间所有提交的日志:
git log origin/master..HEAD
当HEAD位于主分支上时,这将提供未推送提交的日志。
同样,要查看差异:
git diff origin/master..HEAD
您可以使用git-log执行此操作:
git log origin/master..
这假设origin是上游远程的名称,master是上游分支的名称。在..之后删除任何修订名称。。暗示HEAD,它列出了尚未推送的新提交。
类似:要查看未合并的分支,请执行以下操作:
git branch --all --no-merged
这些可能是可疑的,但我建议cxreg给出答案