2016-12-01 374 views
0

我想查看我的本地主分支和远程起源/主分支之间的差异。我已经阅读了几个这样的问题,并尝试了以下所有选项。git diff比较远程和本地分支什么都不做

c:\>git diff master..origin/master 

c:\>git diff origin/master master 

c:\>git diff origin/master..master 

c:\>git diff master origin/master 

c:\>git log -p HEAD..FETCH_HEAD 

沉默。没有。

我已经试过git fetchgit fetch origin之前和之后。要清楚:我的本地分支不同于远程分支。 git diff显示我的更改。

回答

3

要清楚:我的本地分支不同于远程。 git diff显示我的更改。

如果git diff正显示出变化,然后您当地的分行可能不是从远程,因为你有没有犯,甚至上演任何变更不同。

git diff显示工作副本(即磁盘上的内容)和暂存区域之间的差异。各种标志改变了正在扩散的内容。 git diff --staged显示您已经上演的内容和HEAD之间的区别,它显示了即将提交的内容。

WORKING COPY   STAGING AREA     HEAD 
     <--- git diff --->  <--- git diff --staged ---> 

我制作的a cheat sheet which illustrates this

所以,如果git diff显示你有变化,那些变化还没有上演也没有承诺。 A git status应该确认。

要查看您的工作副本有vs origin/master使用git diff origin/master有什么区别。

+0

当然,我不应该承诺看到我的代码和远程代码之间的区别? 'git diff origin/master'也返回/不显示任何内容。 – Marc

+0

@Marc你不必提交,使用'git diff origin/master'。至于为什么这也没有改变,向我们展示'git status'会清除很多东西。 – Schwern

+0

对小抄进行微调:'HEAD'通常指向分支名称本身,然后指向提交。它只是直接指向分离HEAD的提交。 – torek