我有一个脚本,在一个分支中运行良好,而在另一个分支上却被破坏。我想并排看两个版本,看看有什么不同。有办法做到这一点吗?

要清楚的是,我不是在寻找比较工具(我使用Beyond compare)。我正在寻找一个Gitdiff命令,该命令允许我将主版本与当前分支版本进行比较,以查看发生了什么变化。我没有在合并或其他事情中。我只是想说

git diff mybranch/myfile.cs master/myfile.cs

当前回答

我同意达尔比克的回答。如果希望将diff写入diff文件以进行代码检查,请使用以下命令。

git diff branch master -- filepath/filename.extension > filename.diff --cached

其他回答

关于这些不同的比较方法,还有一个有趣的点:我想将当前分支中的文件与另一个分支中的相同文件进行比较。如果我使用

git difftool otherbranch.. filespec

我最后比较了两个文件,它们实际上在我的临时文件夹中。但是,如果我使用

git difftool otherbranch filespec

我最终将临时文件夹中的一个文件(其他分支上的版本)与Git文件夹中的实际文件进行了比较,这a)让我更容易分辨哪个是哪个,b)意味着我可以使用diff工具(在我的例子中是Beyond Compare 4)将更改从其他分支复制到当前分支。

我同意达尔比克的回答。如果希望将diff写入diff文件以进行代码检查,请使用以下命令。

git diff branch master -- filepath/filename.extension > filename.diff --cached

最好的方法是按以下方式使用gitdiff:

git diff<source_branch><target_branch>--文件路径

它将检查这些分支中文件之间的差异。查看本文,了解有关Git命令及其工作方式的更多信息。

我只需执行git diff branch1 branch2路径/to/file

这将检查文件之间的差异。分支1的变化将显示为红色。分支2的变化将为绿色。

假设分支1是过去,分支2是未来。您可以通过反转diff:gitdiffbranch2-branch1中分支的顺序来反转这一点

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

选项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在本例中,您将实际分支中的文件与主分支中的文件。