2

我需要在我的旧 Git 中使用与以下类似的设置才能使用 difftool。设置并不完全相同,因为我不小心删除了旧的 .gitconfig。

 [merge]
     tool=opendiff

 [mergetool]
     tool=opendiff

 [difftool]
     difftool=opendiff

我在家里有一个空的 .gitconfig。我仍然可以使用 opendiff 工具。这是一个惊喜,因为这应该是不可能的。

Git 的 difftool 设置如何在内部工作?

4

2 回答 2

5

您可以在此处查看使用 mergetool 和 difftool 的完整设置

如果该设置似乎仍然处于活动状态,可能是因为它已在全局或您的帐户中设置,因为 git-config 将在三个文件中搜索配置选项:

$GIT_DIR/config

存储库特定的配置文件。(文件名当然是相对于存储库根目录,而不是工作目录。)

~/.gitconfig

用户特定的配置文件。在您的 Git 安装位置也称为“全局”配置文件:

$(prefix)/etc/gitconfig

系统范围的配置文件。


当你输入“”时,Git 会在你说的任何地方保存用户信息git config

git config 手册页

file-option 可以是 之一--system--global或者--file指定从哪里读取或写入值。
默认是假定当前存储库的配置文件, .git/config 除非另有定义GIT_DIRGIT_CONFIG

您可以通过命令行选项或环境变量覆盖这些规则。--global和选项将--system分别限制使用的文件为全局或系统范围的文件。环境变量具有类似的效果,但您可以指定任何您想要的文件名
GIT_CONFIG

可能是您在以前的安装中设置了该环境变量吗?

GIT_CONFIG

从给定文件中获取配置,而不是.git/config. 使用“ --global”选项会强制执行此操作~/.gitconfig。使用“ --system”选项会强制执行此操作$(prefix)/etc/gitconfig

注意:对于 Mac OsX,$(prefix)应该是/usr/local(如果您按照此处所述安装了 Git )

make prefix=/usr/local all
sudo make prefix=/usr/local install
which git
于 2009-06-30T13:18:52.400 回答
3

您还(除了记住 Git 搜索配置的许多地方,正如VonC 的回应中所述)要记住git-difftoolgit-mergetool都提供了一些自动检测/自动发现(以某些固定的优先顺序)哪些工具你有空。

可能是“git difftool”在您的计算机上调用 opendiff 的原因。

于 2009-06-30T14:06:19.603 回答