将git merge驱动程序添加到存储库?

时间:2012-01-12 17:29:56

标签: git merge git-merge git-config

我正在创建合并驱动程序。我已经定义了一个.gitattributes文件,如下所示:

filename merge=mergeStrategy

我在$ PROJECT / .git / config中创建了合并驱动程序,如下所示:

[merge "mergeStrategy"]
    name = My merge strategy
    driver = scripts/mergeScript.sh

这在本地工作正常,但我想将此合并驱动程序提交到git存储库,以便合并策略对每个人都有效。

有没有办法可以将此(或其他Git配置选项)添加到存储库本身?

1 个答案:

答案 0 :(得分:11)

您可以简单地添加和提交(并推送)script/mergeScript(当然还有.gitattributes文件)

只要:

  • mergeScript以某种方式在执行合并驱动程序的用户的$PATH中。
  • mergeScript可执行,chmod +x
  • mergeScript没有扩展名,允许您稍后更改其内容(从bash shell更改为Perl脚本到C可执行文件为......)(如果需要)。 LI>

(谢谢,MestreLion,最后两点,正如他在评论中提到的那样)

本地就是这种情况,因为我怀疑“.”在你的$PATH中,但你不能为每个人都假设。

但是,本地配置文件(.git/config)不会被推送/克隆(因为Alexandr Priymak在评论中指出),因此用户仍然需要复制自定义合并驱动程序的声明 这是一个基本的安全措施,以便您不要推送潜在的“有害”脚本,然后在下次合并时自动执行该脚本。