`git diff`和`git difftool`有什么区别?

17

git diffgit difftool有何区别?

我发现我可以编辑git的配置文件,以便在调用git difftool时轻松更改外部工具使用,并且git diff似乎会将补丁输出到命令行。

为什么我要使用git diff呢?

2个回答

14

正如你和 WKPlus 所说的,git difftool将使用外部工具,而 git diff将直接在终端中显示差异。

针对你最后一个关于何时使用 git diff 的问题,可以考虑以下几种情况:

  1. 你没有GUI,只能使用终端输出
  2. 你没有外部工具
  3. 你不想启动“沉重”的外部工具,只想快速检查两个版本之间的差异

还可以想象许多其他例子,也许你会发现自己在日常使用 git 时遇到过一些。


啊,原来如此简单。我想我的问题是期望了一些更复杂的东西。 - vmrob
2
实际上,您可以设置 git diff 运行 GUI 或其他工具... 像这里显示的那样,使用命令 git config --global diff.external <path_to_wrapper_script>。https://dev59.com/SHVC5IYBdhLWcg3wjx5d#255212 - nmz787
为什么不这样做,而是将外部工具设置为 difftool 而不是 diff,因为命令行输出会在终端中一次性显示所有更改,而 difftools 通常只会弹出一个 GUI 文件。如果您需要快速查看大量更改,则 GUI 弹出窗口速度较慢,可能需要使用鼠标滚动,并且来回切换键盘会使速度更慢。 - nmz787

2
git difftool会在某些工具(例如:vimdiff)中显示差异,并允许您直接进行编辑。
如果您只想检查刚刚所做的更改,我认为git diff更方便。
似乎由于使用vim可以读取文件,那么为什么我还要使用cat呢?

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