我如何查看我所做的任何尚未推送到远程存储库的本地提交?有时,git状态会显示我的分支是在origin/master之前提交的X,但并不总是这样。
这是我安装Git的bug,还是我遗漏了什么?
我如何查看我所做的任何尚未推送到远程存储库的本地提交?有时,git状态会显示我的分支是在origin/master之前提交的X,但并不总是这样。
这是我安装Git的bug,还是我遗漏了什么?
当前回答
您可以使用git-log执行此操作:
git log origin/master..
这假设origin是上游远程的名称,master是上游分支的名称。在..之后删除任何修订名称。。暗示HEAD,它列出了尚未推送的新提交。
其他回答
这对我来说效果更好:
git log --oneline @{upstream}..
or:
git log --oneline origin/(remotebranch)..
git diff origin
假设您的分支被设置为跟踪原点,那么这应该会向您显示差异。
git log origin
将向您提供提交的摘要。
一种方法是列出一个分支上可用但另一个分支不可用的提交。
git log ^origin/master master
有一个名为unpushed的工具,它扫描指定工作目录中的所有Git、Mercurial和Subversion repo,并显示未提交文件和未提交提交的列表。在Linux下安装很简单:
$ easy_install --user unpushed
or
$ sudo easy_install unpushed
以在系统范围内安装。
用法也很简单:
$ unpushed ~/workspace
* /home/nailgun/workspace/unpushed uncommitted (Git)
* /home/nailgun/workspace/unpushed:master unpushed (Git)
* /home/nailgun/workspace/python:new-syntax unpushed (Git)
有关详细信息,请参阅未推送的帮助或官方说明。它还有一个cronjob脚本unpushed notify,用于在屏幕上通知未提交和未推送的更改。
git cherry -v
摘自:Git:查看所有未推送的提交或不在其他分支中的提交。