13

我在这篇文章中遵循了 Jörg W Mittag 的回答,并将 meld 配置为我的 git 中的 difftool。现在我可以使用这个命令完美地查看和比较不同分支中文件的差异:

git checkout branch1
git difftool branch1:file.f90 branch2:file.f90

我执行了上述命令,在 meld 中进行并保存了更改。但是,当我使用以下命令检查文件时:

emacs file.f90

我之前在 meld 中所做的更改根本没有保存。我不明白为什么会这样;我一定没有完全正确地将融合配置为差异工具。有人可以帮我解决这个问题吗?谢谢!!

4

3 回答 3

8

因为您已明确指定要区分的两个文件的分支,所以 meld 正在处理这两个文件的临时副本。尝试只给出未签出分支的名称:文件;这应该会导致 meld 将给定分支的临时副本:文件与检出的同名文件进行比较。

于 2014-01-26T22:54:21.960 回答
8

为避免需要两次指定文件名,请使用以下命令:

git difftool branch -- file

这将branch:filefile工作树中的比较。

此外,要使用 区分整个工作树,请branch使用:

git difftool --dir-diff branch

如其他答案中所述,如果您需要branchother_branch(某些与当前签出的分支不同的分支)进行比较,则必须other_branch在使用上述命令之前先签出。

于 2017-07-14T19:23:00.483 回答
5

为了保存您的更改,您需要将某个分支与当前工作文件进行比较。

在你的情况下:

git checkout branch1
git difftool branch2:file.f90 file.f90

或者,您可以将整个分支与工作目录进行比较并保存您的更改。我在这里提供了更多详细信息:https ://stackoverflow.com/a/22535996/2178047

于 2014-03-23T15:47:30.783 回答