2015-01-02 86 views
0

我需要在git中區分兩個對象。一個是我的工作目錄中的一個樹(目錄),另一個是遠程分支。我可以這樣做,如果我找到樹的SHA並在遠程分支和我的git diff命令的參數中使用它。但是,我試圖找到一種不需要首先在SHA中挖掘的方法。如何在git中區分樹和遠程分支?

因此,舉例來說,如果:

My_Working_Dir 
    file1 
    file2 
    Dir1 
    file3 
    file4 

remote_branch/master 
    file3 
    file4 

然後,我希望能夠發出這樣的事情:

git diff Dir1 remote_branch/master 

這工作,如果我與它的SHA更換方向1,但如果我只是嘗試使用目錄名稱。我也嘗試過使用diff-tree。但這也沒有幫助。請注意,remote_branch/master沒有Dir1目錄。

任何幫助表示讚賞。

在此先感謝。

回答

0

您可以使用<branch>:<file_path>符號與git diff

git diff remote_branch/master:file3 HEAD:Dir1/file3

git diff remote_branch/master:file4 HEAD:Dir1/file4

+0

太棒了。由於我有很多文件,我注意到下面的工作git diff remote_branch HEAD:Dir1 – MrAliB

+0

好吧,很好。很高興我能幫上忙。 –

1

您可以簡單地使用--之後的路徑參數。

I.e.

git diff remote_branch/master -- Dir1

+0

謝謝吉日,我嘗試這樣做。但是,從輸出看來,它表現得好像Dir1中的文件(對應於remote_branch中的文件)是空的。任何想法我可能做錯了什麼? – MrAliB

+0

我想我知道爲什麼這不起作用。該命令假定路徑存在於HEAD和remote_branch/master中。雖然它確實存在於HEAD中,但對於我而言,它並不存在於remote_branch/master中。 – MrAliB