2009-06-30 60 views
2

我需要使用我以前的Git类似设置才能使用difftool。设置不完全一样,因为我偶然删除了旧的.gitconfig。无法理解如何设置Git的difftool配置

[merge] 
    tool=opendiff 

[mergetool] 
    tool=opendiff 

[difftool] 
    difftool=opendiff 

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

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

+0

刚刚更新了我的答案,关于更新git设置时选择的git配置文件。 – VonC 2009-06-30 14:34:48

+0

刚刚更新了我的答案与Mac前缀的值OsX – VonC 2009-06-30 14:59:28

+0

我有我的git外部diff工具设置记录在:http://stackoverflow.com/questions/267761/what-does-your-gitconfig-contain/596821#596821 这可能会有帮助。让我知道你是否也希望那个答案包含的脚本作为读者的练习。我这样做是因为它对于Araxis Merge非常具体。 – Mark 2009-07-01 15:05:30

回答

5

您可以看到complete setup using mergetool and difftool here

如果设置似乎依然是积极的,也可能是因为它已在全球或者在您的帐户设置,因为有三个文件,其中混帐配置将配置选项进行搜索:

$GIT_DIR/config 

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

~/.gitconfig 

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

$(prefix)/etc/gitconfig 

系统范围的配置文件。


的Git无论你说这样可以节省用户的信息,当你键入 'git config' 保存:

git config manual page

文件选项可以是--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为described here

make prefix=/usr/local all 
sudo make prefix=/usr/local install 
which git 
3

你也(除了记忆有关的许多地方的Git搜索的配置,如response by VonC陈述)要记住git-difftoolgit-mergetool都提供了一些自动检测/自动发现(以某种固定的优先顺序),您可以使用哪些工具。

可能是为什么“git difftool”在您的计算机上调用opendiff。