2016-12-01 371 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