主人和分支之间的信息前/后信息?
我创建了一个分支,用于在我推送给Github
本地回购( test-branch
)中进行test-branch
。
如果我去我的Github
帐户并选择这个test-branch
它会显示信息:
This branch is 1 commit ahead and 2 commits behind master
我的问题是:
Github
来查看它)? 我知道我可以看到分支之间的差异使用:
git diff master..test-branch
或使用Meld
(我更喜欢):
git difftool master..test-branch
但我想知道是否有办法分别看到前面和后面的提交。 IE:有没有一种方法可以证明1自己提前做出承诺,然后自己承诺呢?
这里有一个技巧,我发现在本地比较两个分支(任意两个),并显示每个分支提前多少提交(对您的问题1的更一般的答案):
git rev-list --left-right --count master...test-branch
这给你输出像
1 7
这意味着:与主人相比,测试分支提前7次提交,后面1次提交
您还可以比较origin/master...master
等分支,以了解分支在远程分支前后的提交数量
首先要看看你在本地有多少修订,你应该做一个git fetch
来确保你有来自你的远程的最新信息。
git status
的默认输出告诉你前后有多少修改,但通常我觉得这太冗长了:
$ git status
# On branch master
# Your branch and 'origin/master' have diverged,
# and have 2 and 1 different commit each, respectively.
#
nothing to commit (working directory clean)
我更喜欢git status -sb
:
$ git status -sb
## master...origin/master [ahead 2, behind 1]
事实上,我只是简单地将它git s
,这是我用来检查状态的主要命令。
要在master
的“提前修订版”中看到差异,我可以从origin/master
排除“后面的修订版”:
git diff master..origin/master^
要查看DIFF在“背后的修订”的origin/master
,我可以排除“未来修订”从master
:
git diff origin/master..master^^
如果前面或后面有5个修订,可能会更容易这样写:
git diff master..origin/master~5
git diff origin/master..master~5
UPDATE
要查看提前/落后修订,分支必须配置为跟踪另一个分支。 对我来说,这是我克隆远程仓库时的默认行为,以及在使用git push -u remotename branchname
推送分支git push -u remotename branchname
。 我的版本是1.8.4.3,但只要我记得它一直在这样工作。
从版本1.8开始,您可以像这样设置跟踪分支:
git branch --track test-branch
从版本1.7开始,语法不同:
git branch --set-upstream test-branch
使用Git 2.5+,您现在可以选择其他选项来查看所有已配置为推送到分支的分支。
git for-each-ref --format="%(push:track)" refs/heads
请参阅“查看未压缩Git提交”
链接地址: http://www.djcxy.com/p/19495.html上一篇: git ahead/behind info between master and branch?
下一篇: How to iterate through all git branches using bash script