我将详细说明@SharpCoder 接受的答案。
我们运行的第一个命令如下:
git config --global diff.tool bc3
.gitconfig
上面的命令在%userprofile%
目录中创建以下条目:
[diff]
tool = bc3
然后运行以下命令(在这种特殊情况下运行此命令是多余的,仅在某些特殊情况下需要。您很快就会知道):
git config --global difftool.bc3.path "c:/program files/beyond compare 3/bcomp.exe"
.gitconfig
上面的命令在文件中创建以下条目:
[difftool "bc3"]
path = c:/program files/Beyond Compare 3/bcomp.exe
这里要知道的是关键bc3
。这是一个众所周知的 git 密钥,对应于市场上可用的知名比较工具的特定版本(bc3
对应于 Beyond Compare 工具的第 3 版)。如果您想查看所有预定义的键,只需git difftool --tool-help
在 git bash 上运行命令。它返回以下列表:
vimdiff
vimdiff2
vimdiff3
araxis
bc
bc3
codecompare
deltawalker
diffmerge
diffuse
ecmerge
emerge
examdiff
gvimdiff
gvimdiff2
gvimdiff3
kdiff3
kompare
meld
opendiff
p4merge
tkdiff
winmerge
xxdiff
您可以使用上述任何键或定义您自己的自定义键。如果您想完全设置一个不映射到上面列出的任何键的新工具(或新发布的知名工具版本),那么您可以自由地将它映射到上面列出的任何键或新的您自己的自定义密钥。
如果您必须设置一个比较工具怎么办
或者
- 现有知名工具的新版本已经发布,它没有映射到 git 中的任何预定义键?
就像我的情况一样,我已经安装了 Beyond compare 4。Beyond compare 是一个众所周知的 git 工具,但它的版本 4 版本默认情况下没有映射到任何现有的键。因此,您可以遵循以下任何一种方法:
bc3
我可以将 Beyond compare 4 工具映射到对应于 Beyond compare 3 版本的现有密钥。我的电脑上没有超越版本 3,所以我不在乎。如果我愿意,我也可以将它映射到上面列表中的任何预定义键,例如examdiff
.
如果您将众所周知的工具版本映射到适当的已经存在/众所周知的密钥,那么您不需要运行第二个命令,因为它们的安装路径对于 git 是已知的。
例如,如果我在我的盒子上安装了比较版本 3 之外的版本,那么在我的.gitconfig
文件中具有以下配置就足够了:
[diff]
tool = bc3
但是,如果您想更改默认关联工具,那么您最终path
会单独提及该属性,以便 git 了解必须启动新工具的 exe 的路径。这是狐狸 git 在比较 4 之外启动的条目。注意exe的路径:
[difftool "bc3"]
path = c:/program files/Beyond Compare 4/bcomp.exe
最简洁的方法是为新的比较工具或知名工具的新版本完全定义一个新密钥。就像我的情况一样,我定义了一个新键bc4
,以便于记忆。在这种情况下,您必须同时运行两个命令,但第二个命令不会设置新工具可执行文件的路径。相反,您必须cmd
为新工具设置属性,如下所示:
git config --global diff.tool bc4
git config --global difftool.bc4.cmd "\"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"\$LOCAL\" -d \"\$REMOTE\""
.gitconfig
运行上述命令会在您的文件中创建以下条目:
[diff]
tool = bc4
[difftool "bc4"]
cmd = \"C:\\Program Files\\Beyond Compare 4\\bcomp.exe\" -s \"$LOCAL\" -d \"$REMOTE\"
我强烈建议您遵循方法#2,以避免将来给自己造成任何混乱。