2015-01-02 17 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