如何区分本地分支和远程分支?


当前回答

你可以使用——compact-summary选项。

男人不一样

输出扩展头信息的浓缩摘要,例如文件创建或删除(“new”或“gone”,如果是符号链接,可选“+l”)和模式更改(“+x”或“-x”) 分别添加或删除可执行位)在diffstat。信息放在文件名部分和图形部分之间。意味着——统计。

e.g.

git diff $(current_branch) origin/$(current_branch) 

其他回答

简单的方法:

git fetch
git log -p HEAD..FETCH_HEAD

这将首先从默认远程(origin)获取更改。这将在克隆存储库时自动创建。你也可以显式:git fetch origin master。

然后git log用来比较你当前的分支和刚刚获取的分支。(-p(生成补丁)选项显示了差异。)

git difftool <commit> .

这将比较您想要的提交和您的本地文件。不要忘记最后的点(本地)。

例如,比较你的本地文件和一些提交:

git difftool 1db1ef2490733c1877ad0fb5e8536d2935566341 .

(并且你不需要git fetch,除非需要与new commit进行比较)

我更理解输出:

Git diff <远程跟踪分支> <本地分支>

它告诉我,如果我推本地分支,什么将被删除,什么将被添加。当然,它是一样的,只是相反,但对我来说,它更可读,我更舒服地看着将要发生的事情。

如果你想看到的区别只是文件名的改变,那么使用:

git diff --name-status <remote-branch> <local-branch>

否则,这将显示两个分支之间的所有差异:

git diff <remote-branch> <local-branch>

在我的情况下,我有一个名为heroku的第二个远程,这不是起源,因为它不同步,我在试图运行git diff master heroku/master时得到了这个错误:

致命:模糊的参数“heroku/master”:未知的修订或路径不在工作树中。

或者当尝试其他方法git diff master. heroku/master:

致命:糟糕的修订'master..heroku/master'

解决方案是在运行git diff之前显式地在git fetch中提到远程名称,在我的情况下:

$ git fetch heroku
$ git diff master heroku/master