git difftool --dir-diff:如何复制更改的文件

时间:2014-02-20 14:44:22

标签: git difftool

之前我使用git-diffall,但作者通过git difftool --dir-diff命令说it was obsolete

命令git difftool --dir-diff无法复制我在difftool中更改代码的内容,如git-diffall's --copy-back option do

我在网上搜索,只发现这个,看起来很复杂......:

[PATCH] difftool --dir-diff: copy back all files matching the working tree

当您使用difftool并对代码进行一些更改时,您会怎么做?

由于

1 个答案:

答案 0 :(得分:5)

  

命令git difftool --dir-diff无法复制我在difftool中更改的代码,就像git-diffall的--copy-back选项一样。

修改后的文件 被复制回来,只要您正在进行区分的一侧是工作树。那就是:

git difftool --dir-diff other-commit

将在左侧显示other-commit,在右侧显示当前工作树中的已修改文件。退出工具后,右侧的文件将被复制回工作树。 (经v1.8.3.2测试。)

只有当它们最初是你的工作副本时才复制它们才有意义:从任意差异中复制文件会覆盖你的工作树。但是,如果您希望工作树成为commit2的版本,并将其与commit1进行比较并将更改保留在树中,则可以通过首先检查该版本来明确说明:

git checkout commit2 -- specific-file
git difftool --dir-diff commit1