我在Windows上,在我的全局git配置文件中设置了差异和合并工具。我的大部分项目都在Visual Studio中。我使用的某些项目在.git目录中具有本地配置文件。我认为这是在Visual Studio创建存储库时创建的。问题是VS会覆盖我的差异工具,并使用vsdiffmerge.exe合并工具。在我的全局设置中,它被设置为无法比较。有没有一种方法可以告诉git优先于全局配置而不是本地配置。我总是在命令行上使用git,并且期望当我键入“ git difftool”时无法打开。在VS中进行差异比较以打开vsdiffmerge时很好。
答案 0 :(得分:1)
Windows上已登录用户的全局Git配置文件位于名为C:\users\<username>\
的文件夹.gitconfig
中。您需要做的就是确保全局Git配置文件包含默认情况下要使用的difftool,并确保未在本地Git配置文件中列出该文件(该文件位于解决方案文件夹的.git文件夹下,位于文件名config
)。
您的本地Git config
文件通常有两个[difftool]
条目:一个用于指定是否提示您使用哪个difftool,另一个用于配置特定的difftool。它可能看起来像这样:
[difftool]
prompt = true
[difftool "vsdiffmerge"]
cmd = \"C:\\Program Files (x86)\\Microsoft Visual Studio\\2017\\Enterprise\\Common7\\IDE\\CommonExtensions\\Microsoft\\TeamFoundation\\Team Explorer\\vsdiffmerge.exe\" \"$LOCAL\" \"$REMOTE\" //t
keepBackup = false
只需将本地Git配置文件中的条目复制到剪贴板,然后将其删除(首先备份您的配置文件!)。之后,打开全局Git文件并将这些条目粘贴到那里(或根据需要修改任何现有的[difftool]
条目)。
此时,您的命令行Git difftool
命令将调用全局配置的difftool而不是本地定义的difftool。