我在不同的分支中有两个不同的文件。 如何在一个命令中区分它们?
像
这样的东西# git diff branch1/foo.txt branch2/foo-another.txt
我可以查看另一个文件,区分并恢复,但这是非常糟糕的解决方案。
答案 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