能否在Git子模块内修改代码并推送到原始仓库及伞形仓库?
子模块修改后同步到独立Repo及伞形Repo的可行方案
完全可行,具体操作步骤如下:
第一步:在子模块内提交并推送修改到原始独立Repo
- 进入子模块目录:
cd RepoA/RepoB - 暂存修改的文件:
git add file1.yml - 提交本地更改:
git commit -m "更新file1.yml的配置内容" - 推送到RepoB的远程仓库(假设主分支是main):
git push origin main
- 进入子模块目录:
第二步:更新伞形RepoA的子模块引用
- 回到RepoA的根目录:
cd .. - 此时RepoA会识别到RepoB的提交哈希已更新,暂存这个变更:
git add RepoB - 提交RepoA的子模块引用更新:
git commit -m "同步RepoB的最新提交版本" - 推送到RepoA的远程仓库:
git push origin main
- 回到RepoA的根目录:
完成以上操作后,原始的RepoB会收到你的修改内容,而伞形RepoA则记录了RepoB当前的最新提交版本。后续其他人克隆RepoA并执行git submodule update --init --recursive时,就能拉取到RepoB的最新修改。
内容的提问来源于stack exchange,提问作者jerdub1993
相关产品推荐
相关产品推荐

