首先,为了查看你在本地落后了多少个修订,你应该进行git获取,以确保你从远程获得了最新的信息。
git状态的默认输出会告诉你你已经完成了多少个修订,但通常我觉得这太啰嗦了:
$ 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状态
$ git status -sb
## master...origin/master [ahead 2, behind 1]
事实上,我将其别名为git s,这是我用于检查状态的主要命令。
为了看到master的“前修订”中的差异,我可以从origin/master中排除“后修订”:
git diff master..origin/master^
为了查看origin/master的“后面修订”的差异,我可以从master中排除“前面修订”:
git diff origin/master..master^^
如果前面或后面有5个修订,可能会更容易这样写:
git diff master..origin/master~5
git diff origin/master..master~5
更新
要查看前面/后面的修订,必须将分支配置为跟踪另一个分支。对我来说,这是我克隆远程存储库时的默认行为,当我用git推送一个分支后,push -u remotename branchname。我的版本是1.8.4.3,但从我记事起,它就一直是这样工作的。
从1.8版本开始,你可以像这样设置跟踪分支:
git branch --track test-branch
从1.7版开始,语法就不同了:
git branch --set-upstream test-branch