我如何查看我所做的任何尚未推送到远程存储库的本地提交?有时,git状态会显示我的分支是在origin/master之前提交的X,但并不总是这样。
这是我安装Git的bug,还是我遗漏了什么?
我如何查看我所做的任何尚未推送到远程存储库的本地提交?有时,git状态会显示我的分支是在origin/master之前提交的X,但并不总是这样。
这是我安装Git的bug,还是我遗漏了什么?
当前回答
我建议你去看剧本https://github.com/badele/gitcheck,我已经编写了这个脚本,用于一次性签入所有git存储库,它显示了谁没有提交,谁没有推送/拉取。
这里是一个示例结果
其他回答
这给出了origin/master和HEAD之间所有提交的日志:
git log origin/master..HEAD
当HEAD位于主分支上时,这将提供未推送提交的日志。
同样,要查看差异:
git diff origin/master..HEAD
这是我的可移植解决方案(shell脚本也适用于Windows,无需额外安装),它显示了所有分支与原始分支的区别:git fetch log
示例输出:
==== branch [behind 1]
> commit 652b883 (origin/branch)
| Author: BimbaLaszlo <bimbalaszlo@gmail.com>
| Date: 2016-03-10 09:11:11 +0100
|
| Commit on remote
|
o commit 2304667 (branch)
Author: BimbaLaszlo <bimbalaszlo@gmail.com>
Date: 2015-08-28 13:21:13 +0200
Commit on local
==== master [ahead 1]
< commit 280ccf8 (master)
| Author: BimbaLaszlo <bimbalaszlo@gmail.com>
| Date: 2016-03-25 21:42:55 +0100
|
| Commit on local
|
o commit 2369465 (origin/master, origin/HEAD)
Author: BimbaLaszlo <bimbalaszlo@gmail.com>
Date: 2016-03-10 09:02:52 +0100
Commit on remote
==== test [ahead 1, behind 1]
< commit 83a3161 (test)
| Author: BimbaLaszlo <bimbalaszlo@gmail.com>
| Date: 2016-03-25 22:50:00 +0100
|
| Diverged from remote
|
| > commit 4aafec7 (origin/test)
|/ Author: BimbaLaszlo <bimbalaszlo@gmail.com>
| Date: 2016-03-14 10:34:28 +0100
|
| Pushed remote
|
o commit 0fccef3
Author: BimbaLaszlo <bimbalaszlo@gmail.com>
Date: 2015-09-03 10:33:39 +0200
Last common commit
可以使用为日志传递的参数,例如--oneline或--patch。
显示本地但非上游的所有提交:
git log @{u}..
@{u} 或@{upstream}表示当前分支的上游分支(有关详细信息,请参阅git-rev-parse-help或git-help修订版)。
要轻松列出所有分支中的所有未推送提交,可以使用以下命令:
git log --branches @{u}..
一种方法是列出一个分支上可用但另一个分支不可用的提交。
git log ^origin/master master