1
我的用例是这样的......自动git合并
我有一个项目有两个生产分支。任何分支中的大部分更改都需要合并到另一个分支中。只有非常特殊和不经常的变化需要在两个分支中分开。
我想要做的是在主远程存储库上的两个分支之间建立一个自动合并,作为生产构建机的源,以便任何将某些东西推入分支A的人自动将其合并到分支B中并手动处理特殊的不合并推送(很少发生)。
任何简单的方法来做到这一点?
我的用例是这样的......自动git合并
我有一个项目有两个生产分支。任何分支中的大部分更改都需要合并到另一个分支中。只有非常特殊和不经常的变化需要在两个分支中分开。
我想要做的是在主远程存储库上的两个分支之间建立一个自动合并,作为生产构建机的源,以便任何将某些东西推入分支A的人自动将其合并到分支B中并手动处理特殊的不合并推送(很少发生)。
任何简单的方法来做到这一点?
你可以使用post-receive git钩子。当有人推送到主远程存储库时,会调用一个脚本(钩子),您可以在其中获取各种信息,查看推送的内容,预览提交哈希和新提交哈希。
在这里,您可以确定究竟推送了哪个分支。鉴于此信息,您可以在另一个存储库检出其他分支,执行合并并推送此信息。
在.git/hooks /文件夹中有一个post-receive.sample文件。将它重命名为post-receive并确保它是可执行的。在bash它可能看起来像:
#!/bin/sh
# <oldrev> <newrev> <refname>
while read oldrev newrev ref
do
echo "$oldrev $newrev $ref"
done
嘿,我不知道为什么你说我们应该放弃推...是有一些这样做的理由还是因为我的问题是模糊的?大部分开发人员在分支机构A和分支机构B上工作的工作应该结合在一起。唯一的区别是它们链接到不同的第三方库,因此Makefile和头文件之间存在细微的差异,并且这些差异大体上是不变的。 – owagh 2012-04-05 15:43:27
但是,后接收钩似乎是这样做的方式。你可以在关于post-recieve脚本的回答中添加更多的资源链接吗?我的.git/hooks文件夹中唯一的例子是一个电子邮件脚本,它并没有真正显示我可以如何在post-recieve脚本中进行合并。 – owagh 2012-04-05 15:45:43
您可以按原样使用我的脚本。假设你有权访问bash。 – ralphtheninja 2012-04-05 15:59:38