Git/GitHub如何基于基础仓库管理多个衍生Eleventy项目并同步更新?
手动同步基础仓库改动的方案
- 给衍生子仓库添加上游远程地址,在子仓库本地执行命令:
git remote add upstream <基础仓库的Git地址> - 后续需要同步基础仓库更新时,依次执行以下命令:
git fetch upstream git checkout main # 切换到你子仓库的主分支,分支名根据实际情况调整 git merge upstream/main # 合并基础仓库主分支的改动,有冲突时手动解决后提交即可 - 如果你的仓库托管在GitHub,更简单的方式是直接用平台原生的「模板仓库」功能:先把基础仓库设置为模板仓库,创建衍生项目时直接点「Use this template」生成新仓库,后续可以直接在衍生仓库的页面点击「Sync from template」一键拉取基础仓库的更新,不需要手动配置上游地址。
自动同步所有衍生仓库的方案
你可以通过GitHub Actions实现基础仓库更新后自动同步到所有衍生项目,无需手动逐个操作:
- 首先生成一个拥有所有衍生仓库读写权限的Personal Access Token,存到基础仓库的Secrets中。
- 在基础仓库的
.github/workflows目录下新建同步工作流配置,触发条件设置为基础仓库主分支的push事件。 - 你可以把需要同步的衍生仓库地址统一存放在基础仓库的配置文件中,工作流直接读取该文件遍历执行,后续新增衍生项目时只要更新配置文件即可。
- 工作流逻辑可以设置为:遍历所有需要同步的衍生仓库,将基础仓库的最新改动推送到对应衍生仓库的临时分支,自动创建从临时分支到衍生仓库主分支的Pull Request。
- 如果你的衍生仓库没有大量自定义改动,可以配置为自动合并无冲突的PR;如果有自定义改动,只需要处理系统提示有冲突的PR即可,能节省大量重复操作的时间。
内容的提问来源于stack exchange,提问作者kuwts
相关产品推荐
相关产品推荐

