我的用例是这样的......
我有一个有两个生产分支的项目。任何分支中的大多数更改都需要合并到另一个分支中。只有非常具体且不频繁的更改需要在两个分支中分开。
我想要做的是在主远程存储库上的两个分支之间设置自动合并,该存储库用作生产构建机器的源,以便将某些东西推送到分支 A 的任何人都会自动将其合并到分支 B 并处理一个特殊的手动不合并推送(这种情况很少发生)。
有什么简单的方法可以做到这一点?
您可以使用 post-receive git hook。当有人推送到主远程存储库时,会调用一个脚本(钩子),您可以在其中获取各种信息、推送的内容、预览提交哈希和新提交哈希。
在这里,您可以准确确定推送了哪个分支。鉴于此信息,您可以在另一个存储库中签出另一个分支,进行合并并推送此信息。
您的 .git/hooks/ 文件夹中有一个 post-receive.sample 文件。将其重命名为 post-receive 并确保它是可执行的。在 bash 中,它可能看起来像:
#!/bin/sh
# <oldrev> <newrev> <refname>
while read oldrev newrev ref
do
echo "$oldrev $newrev $ref"
done