Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/macos/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
无法理解Git';设置了不同的工具配置_Git_Macos_Difftool - Fatal编程技术网

无法理解Git';设置了不同的工具配置

无法理解Git';设置了不同的工具配置,git,macos,difftool,Git,Macos,Difftool,我需要在我的旧Git中使用与以下类似的设置才能使用difftool。设置不完全相同,因为我无意中删除了旧的.gitconfig [merge] tool=opendiff [mergetool] tool=opendiff [difftool] difftool=opendiff 我家里有一个空的.gitconfig。 我仍然可以使用opendiff工具。 这是一个惊喜,因为这应该是不可能的 Git的difftool设置如何在内部工作?您可以看到一个 如

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

 [merge]
     tool=opendiff

 [mergetool]
     tool=opendiff

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

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

您可以看到一个

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

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

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

$(prefix)/etc/gitconfig
系统范围的配置文件


当您键入“
Git config
”时,Git会将用户信息保存在您希望保存的位置:

发件人:

文件选项可以是
--system
--global
--file
中的一个,用于指定从何处读取或写入值。
默认设置是假定当前存储库的配置文件为.git/config,除非使用
git\u DIR
git\u config
另有定义

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

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

GIT_CONFIG
从给定文件中获取配置,而不是
.git/config
。使用“
--global
”选项可强制将其设置为
~/.gitconfig
。使用“
--system
”选项可强制将其设置为
$(前缀)/etc/gitconfig

注意:对于Mac OsX,
$(前缀)
应该是
/usr/local
(如果您安装了Git as)

您还需要(除了记住Git搜索配置的许多地方,如中所述)记住这两个地方,并提供一些您可用的工具的自动检测/自动发现(以某种固定的优先顺序)


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

+1。我试图在脚本“git merge tool”中检查默认的自动检测设置,但乍一看没有发现任何东西。你知道自动检测是脚本化的,还是在某个git可执行文件中?VonC的问题现在在@VonC:Check'git mergetool--lib'(在“git--exec dir”中)中的'guess_merge_tool'函数上。@VonC:你如何更改git保存用户信息的设置?--我的旧Git将所有内容保存到.gitconfig。我当前的Git将所有内容保存到$Git\u DIR/config。@VonC:文件夹$(前缀)/etc/gitconfig在哪里?我在我的OS/X中没有找到它。@Masi,哦,这是默认的Unix目录,但我将检查MacGet it的翻译位置::/usr/local@VonC:是[-]Git中的注释,使我只能在我的.gitconfig中使用%tool=opendiff%一次?刚刚更新了我关于更新Git设置时选择的Git配置文件的回答。刚刚更新了我的回答,并使用Mac OsXI的前缀值将我的Git external diff tool设置记录在:这可能会有帮助。让我知道,如果你还想作为一个练习,为读者的答案包含的脚本。我这样做是因为它非常特定于Araxis Merge。@马克:请让我看看特定于Araxis Merge的脚本。
GIT_CONFIG
make prefix=/usr/local all
sudo make prefix=/usr/local install
which git