需要在脚本中执行此操作。谢谢。
答案 0 :(得分:2)
我使用以下命令(作为别名)列出未推送到远程存储库的所有本地提交。
log --oneline --decorate=short --graph --all --branches --not --remotes
这需要修改以便在脚本中使用,并且可能有管道命令执行相同的操作,但我发现它很有用。
关键在于最后几个论点:
--all
包含refs/
中的所有引用 - 如果您只想要当前分支的提交,则可能不希望这样。--branches
包含refs/heads
中的所有引用 - 将其保留为当前值,或明确指定分支以限制提交列表。--not --remotes
包含了魔力 - 确保列出的所有提交都不在refs/remotes
中。 编辑> 看起来git rev-list ...
plumbing命令有类似的参数,但我没有测试它以了解它是否有效。建议使用管道命令来编写脚本,因此请查看它 - man-page以供参考。
希望这有帮助。
答案 1 :(得分:1)
如果情况如下:
/--a--b--c myBranch [local branch]
/
----x <- [closest common ancestor]
\
\--e--f origin/myBranch [tracked remote]
git status
将显示消息myBranch..origin/myBranch [ahead 3, behind 2]
- ahead 3
表示您的本地分支在最近的共同祖先之前提交3次,behind 2
表示远程分支是2次提交最近的共同祖先git log origin/myBranch..myBranch
将显示有关提交a-b-c
的日志 - 它将显示提交的日志,范围从两个分支的共同祖先到myBranch
git log myBranch..origin/myBranch
将显示有关提交e-f
的日志 - 它将显示提交的日志,范围从两个分支的共同祖先到origin/myBranch
您可以为这些命令添加任何您喜欢的选项,例如:git log --oneline --decorate origin/myBranch..myBranch
答案 2 :(得分:0)
git status
表示当前分支在跟踪分支后面的距离。您可以在脚本中运行它并解析输出。可能还有一个管道命令可以更直接地为您提供信息。
答案 3 :(得分:0)
您可以使用'git fetch'命令获取最新的更改信息,然后如果您在跟踪的分支上执行“ git status”,它应该会显示给您未推送到服务器的提交数或当前分支落后的程度。
使用 fetch 命令不会应用本地分支中的更改,为此,您必须使用'git merge origin / branch_name'进行合并。