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