Git:如何在不同的分支中区分两个不同的文件?

时间:2011-11-15 03:32:44

标签: git patch git-diff

我在不同的分支中有两个不同的文件。 如何在一个命令中区分它们?

这样的东西
# git diff branch1/foo.txt branch2/foo-another.txt

我可以查看另一个文件,区分并恢复,但这是非常糟糕的解决方案。

5 个答案:

答案 0 :(得分:199)

git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt

您还可以使用相对路径:

git diff branch1:./relative/path/to/foo.txt branch2:./relative/path/to/foo-another.txt

答案 1 :(得分:21)

旁注:不需要完整路径,您可以从./开始获取相对路径。它有时候很方便。

git diff branch1:./relative/path/to/foo.txt branch2:./relative/path/to/foo-another.txt

答案 2 :(得分:1)

有很多方法可以比较来自两个不同分支的文件。例如:

  • 如果名称相同或不同:

     git diff branch1:file branch2:file
    

    <强> 实施例

     git diff branch1:full/path/to/foo.txt branch2:full/path/to/foo-another.txt
    
  • 仅当名称相同且您想将当前工作目录与某个分支进行比较时:

    git diff ..someBranch path/to/file
    

    示例:

    git diff ..branch2 full/path/to/foo.txt
    
      

    在此示例中,您将比较实际分支中的文件   主分支中的文件。

您可以查看此回复:

http://localhost:8080/?grsf_window=true&grsf_cid=0v4rrc&grsf_ccid=wbc0eo

答案 3 :(得分:1)

只是添加它,因为我发现它的语法非常简单:

Update table1 set Name = 'Peter' where Name like 'Snow'

Insert into table1 (Group_Id, Name) Values (1, 'Harry')

还可以使用相对引用,例如:

git diff <branch1> <branch2> <filepath>

答案 4 :(得分:0)

您可以指定要应用的git diff的开始和范围。范围用..表示法。

branch1=somebranch
branch2=someotherbranch
git diff ${branch1}..${branch2} -- file_path