Git 在 repo 本身中为项目设置标准合并工具

Git setting up standard merge tool for the project in the repo itself

因此,从这个(和其他)question/answers 开始:git-on-windows-how-do-you-set-up-a-mergetool,它告诉我们如何在您的本地 PC 上设置一个 diff/merge 工具(全局或每个项目).

对于我们的项目(我们正在标准化我们的工具集和安装),我只想设置一次差异/合并工具并将其推广给所有人。

有办法吗? - 即当我们克隆一个项目时,它已经带有 merge/diff 工具配置。

我在 .git 文件夹中看到有一个 "config" 文件 - 我尝试添加:

[diff]
    tool = bcompare

但是当我输入命令 git difftool...

时,这似乎不起作用

如评论中所述,不可能将存储库配置推广到克隆存储库的每个人。这适用于存储在 .git/config 中的直接配置,也适用于钩子之类的东西。每当您克隆存储库时,都会从 /usr/local/git/share/git-core/templates 复制默认存储库模板,并补充作为克隆过程的一部分创建的常规配置(例如 .git/config 和一般参考)。

由于配置始终位于存储库的本地,因此克隆的存储库也不会从源的本地配置复制设置。

对于钩子,这个问题的常见解决方案是有一些安装脚本,直接在存储库中或作为一些其他全局可用工具(例如 Gerrit’s git-review)的一部分,在以下情况下设置本地配置首次使用。

对于您的 diff/merge 工具,您可以提供一个类似的设置脚本来为您的团队成员执行此操作。

但请注意,这些工具通常非常特定,不仅针对正在使用它的计算机(例如,我可以将我的 Beyond Compare 安装到与您不同的文件夹中),而且非常主观。可能有些人更愿意使用工具 X 而不是您配置为默认的工具 Y。所以我建议把这个留给开发人员。如果他们关心的话,很可能他们已经在全球范围内设置了一些工具。