添加git合并驱动程序到存储库?
问题描述:
我正在创建一个合并驱动程序。我已经定义了一个.gitattributes文件,如下所示:添加git合并驱动程序到存储库?
filename merge=mergeStrategy
我创建了合并司机在$ PROJECT/git的/配置如下:
[merge "mergeStrategy"]
name = My merge strategy
driver = scripts/mergeScript.sh
也能正常工作本地,但我想要将此合并驱动程序提交到git存储库,以便合并策略适用于所有人。
有没有一种方法可以将此(或其他Git配置选项)添加到存储库本身?
答
你可以简单地添加并提交(推)script/mergeScript
(连同.gitattributes
文件,当然)
这将工作只要:
-
mergeScript
在某种程度上是的的$PATH
用户执行合并驱动程序。 -
mergeScript
是可执行的,chmod +x
-
mergeScript
是不带扩展,允许你后(Perl脚本从bash shell的一个C可执行...)改变其内容如果需要的话。
(谢谢你,MestreLion,在过去的两个点,因为他在评论中提及他们)
这在当地是这种情况你,因为我怀疑“.
”是你的$PATH
,但你不能为每个人假设。
然而,本地配置文件(.git/config
)将不会推/复制(如Alexandr Priymak指出在评论),所以用户仍然需要复制自定义的申报合并的驱动程序。
这是一个基本的安全措施,以便您不推动可能在下一次合并时自动执行的潜在“有害”脚本。
这不会保存git存储库中的配置设置。 – 2012-01-12 17:38:11
@AlexandrPriymak:好点。我已经添加了重要的警告答案。 – VonC 2012-01-12 18:02:36
不要忘记使用'chmod + x'将'mergeScript.sh'设置为可执行文件,否则它可能会(不会)工作。我也**强烈**建议你**不要**使用可执行文件的扩展名。将它命名为'mergeScript',因为将来它可能会从shell脚本更改为perl,python,甚至编译的C可执行文件。 – MestreLion 2012-03-09 23:53:51