您真正应该做的是创建一个包含通用代码的“模板”分支/存储库。然后,您从该模板分支分支自定义存储库。当您对模板进行更改时,您可以将它们合并到自定义的存储库中。
现在,由于您已经拥有其他存储库,因此您必须捏造更改。基本上创建一个模板存储库,其中包含所有存储库已手动更新的非自定义更改。然后将自定义存储库作为远程添加到此模板存储库git remote add customized1 URL
并签出相应的分支git checkout -t -b customized1-master customized1/master
然后从模板的母版“假”合并到每个自定义母版中:
for f in customized1 customized2; do
git checkout $f-master
git merge -s ours master
git push $f $f-master:master
done
你当然可以在推送之前检查它做了什么。
此时,您已将模板分支作为相关祖先注入到您的自定义存储库/分支中。然后,您可以更改您的模板分支(在这个新仓库的示例中称为 master),并在提交后进行真正的合并:
for f in customized1 customized2; do
git checkout $f-master
git merge master
git push $f $f-master:master
done
你几乎肯定想在这次推送之前检查发生了什么。现在,对模板的更改可以轻松地与所有自定义存储库共享。此外,如果您需要一个新的自定义 repo,您可以从模板分支分支它。