我有一个脚本,在一个分支中运行良好,而在另一个分支上却被破坏。我想并排看两个版本,看看有什么不同。有办法做到这一点吗?
要清楚的是,我不是在寻找比较工具(我使用Beyond compare)。我正在寻找一个Gitdiff命令,该命令允许我将主版本与当前分支版本进行比较,以查看发生了什么变化。我没有在合并或其他事情中。我只是想说
git diff mybranch/myfile.cs master/myfile.cs
我有一个脚本,在一个分支中运行良好,而在另一个分支上却被破坏。我想并排看两个版本,看看有什么不同。有办法做到这一点吗?
要清楚的是,我不是在寻找比较工具(我使用Beyond compare)。我正在寻找一个Gitdiff命令,该命令允许我将主版本与当前分支版本进行比较,以查看发生了什么变化。我没有在合并或其他事情中。我只是想说
git diff mybranch/myfile.cs master/myfile.cs
当前回答
如果您想对当前分支进行比较,可以提交并使用:
git diff $BRANCH -- path/to/file
这样,它将从当前分支与引用的分支($branch)不同。
其他回答
有多种方法可以比较来自两个不同分支的文件:
选项1:如果要将文件从n个特定分支与另一个特定分支进行比较:git diff branch1名称branch2名称路径/to/file例子:git diff mybranch/myfile.cs mysecondbranch/mdfile.cs在本例中,您将“mybranch”分支中的文件与“mysecondbranch”分支中的文件。选项2:简单方法:git diff branch1:文件branch2:文件例子:git diff mybranch:myfile.cs mysecondbranch:m:file.cs此示例与选项1类似。选项3:如果要将当前工作目录与某个分支进行比较:git差异。。someBranch路径/to/file例子:git差异。。主myfile.cs在本例中,您将实际分支中的文件与主分支中的文件。
对于Visual Studio代码,我强烈建议扩展:
Git历史差异文档
您可以使用它在文件之间甚至分支之间进行两次比较!
在控制台中,您可以简单地使用以下命令:
git diff <Your_Branch> <Branch_To_Compare_With> -- myfile.cs
我只需执行git diff branch1 branch2路径/to/file
这将检查文件之间的差异。分支1的变化将显示为红色。分支2的变化将为绿色。
假设分支1是过去,分支2是未来。您可以通过反转diff:gitdiffbranch2-branch1中分支的顺序来反转这一点
更现代的语法:
git diff ..master path/to/file
双点前缀表示“从当前工作目录到”。你也可以说:
主人即与上述相反。这与master相同。我的分支。。master,显式引用当前工作树以外的状态。v2.0.1..master,即引用标记。[参考规范]。。[refspec],基本上是Git的代码状态。
使用提交哈希如下:
git diff <hash1> <hash2> <filename>
其中hash1可以是来自任何分支的任何提交,hash2也是如此。