我有一个脚本在一个分支中工作正常,在另一个分支中被破坏 . 我想并排看两个版本,看看有什么不同 . 有没有办法做到这一点?
To be clear 我'm not looking for a compare tool (I use Beyond Compare). I'正在寻找一个git diff命令,它允许我将主版本与我当前的分支版本进行比较,看看有什么变化 . 我不是在合并或任何事情的中间 . 我只是想说些什么
git diff mybranch/myfile.cs master/myfile.cs
8 回答
git diff
可以显示两次提交之间的区别:或者,等效地:
使用后一种语法,如果任何一方是
HEAD
,则可以省略它(例如master..
将master
与HEAD
进行比较) .您可能也对
mybranch...master
(来自git diff docs)感兴趣:换句话说,这将在
master
中给出一个变化差异,因为它与mybranch
不同(但自mybranch
以来没有新的变化) .在所有情况下,文件名前面的
--
分隔符表示命令行标志的结束 . 这是可选的,除非Git在参数引用提交或文件时会感到困惑,但包括它不是一个坏习惯 . 有关示例,请参见https://stackoverflow.com/a/13321491/54249 .如果配置了相同的参数,则可以将相同的参数传递给
git difftool
.你可以这样做:
git diff branch1:file branch2:file
如果您配置了difftool,那么您还可以:
git difftool branch1:file branch2:file
相关问题:How do I view git diff output with visual diff program
更现代的语法:
git diff ..master path/to/file
双点前缀表示“从当前工作目录到” . 你也可以说:
master..
,即与上述相反 . 这与master
相同 .mybranch..master
,显式引用当前工作树以外的状态 .v2.0.1..master
,即引用标签 .[refspec]..[refspec]
,基本上可以识别为git的代码状态 .有许多方法可以比较来自两个不同分支的文件:
Example:
Example:
Example:
我只是做
git diff branch1 branch2 path/to/file
这将检查文件之间的差异 .
branch1
的变化将为红色 .branch2
的变化将为绿色 .假设
branch1
是过去而branch2
是未来 . 你可以通过反转diff中分支的顺序来反转这个:git diff branch2 branch1
同意@dahlbyk建议的答案 . 如果要将diff写入diff文件以进行代码审查,请使用以下命令 .
最好的方法是通过以下方式使用
git diff
:git diff <source_branch> <target_branch> -- file_path
它将检查这些分支中的文件之间的差异 . 有关git commands以及它们如何工作的更多信息,请查看本文 .
为了比较git bash中的两个文件,您需要使用以下命令:
此命令将显示bash本身中两个文件之间的差异 .