需要在脚本中执行此操作。谢谢你。
问问题
201 次
4 回答
2
我使用以下命令(作为别名)列出所有未推送到远程存储库的本地提交。
log --oneline --decorate=short --graph --all --branches --not --remotes
这需要修改以在脚本中使用,并且可能有管道命令可以做同样的事情,但我发现它很有用。
关键在于最后几个论点:
--all
包括所有的参考refs/
——如果你只想要当前分支的提交,你可能不想要这个。--branches
包括所有 refsrefs/heads
- 将其保留为当前或明确指定一个分支以限制提交列表。--not --remotes
包含魔法——确保没有列出的提交在refs/remotes
.
编辑 > 看起来git rev-list ...
管道命令具有相似的参数,但我还没有测试过它是否工作相同。建议将管道命令用于脚本,因此请查看它——手册页以供参考。
希望这可以帮助。
于 2013-03-22T05:18:22.853 回答
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
于 2013-03-22T10:13:38.230 回答
0
您可以使用“git fetch”命令获取最新的更改信息,然后如果您在跟踪的分支上执行“ git status”,它应该会显示未推送到服务器的提交数量或当前分支的距离在后面。
使用fetch命令不会在您的本地分支中应用更改,为此,您必须使用'git merge origin/branch_name'合并它。
于 2013-03-22T02:09:02.810 回答
0
git status
指示当前分支在跟踪分支之后的距离。您可以在脚本中运行它并解析输出。可能还有一个管道命令可以更直接地为您提供信息。
于 2013-03-22T01:56:41.093 回答