如何比较来自两个不同分支的文件

2163

我有一个脚本在一个分支上运行正常,在另一个分支上却出现问题。我想将这两个版本并排比较,看看有什么不同之处。有没有办法可以做到这一点?

明确一下:我不是在寻找比较工具(我使用的是Beyond Compare)。我正在寻找Git diff命令,以便将主版本与当前分支版本进行比较,查看有哪些变化。我也没有处于合并过程中或者其他任何情况。我只是想说类似于:

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

可能有帮助的是阅读git diff:https://dev59.com/questions/i3E85IYBdhLWcg3w9odJ - Charlie Parker
14个回答

4

请使用提交哈希值作为以下格式:

git diff <hash1> <hash2> <filename>

hash1 可以是任何分支的任何提交,hash2 同理。


那怎么回答这个问题呢?能详细解释一下吗?例如,有哪些方法可以找到这两个哈希值? - Peter Mortensen
询问stackoverflow - prometeu

3

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

git difftool otherbranch.. filespec

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

git difftool otherbranch filespec

我最终将我的临时文件夹中的文件(即otherbranch分支上的版本)与Git文件夹中的实际文件进行比较,这样做有两个好处:a)更容易区分它们之间的差异;b)可以使用diff工具(在我的情况下是Beyond Compare 4)将其他分支中的更改复制到当前分支。


1
最好的方法是使用以下方式中的git diffgit diff <source_branch> <target_branch> -- file_path 它将检查这些分支中的文件差异。请参阅此文章以获取有关Git命令及其工作方式的详细信息:Git commands

1
为了在 Git Bash 中比较两个文件,您需要使用以下命令:
git diff <Branch name>..master -- Filename.extension

这个命令将在Bash中显示两个文件的差异。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接