GitHub中Fork的仓库中有子模块引用如何解决
GitHub中Fork的仓库中有子模块引用如何解决
在GitHub上,当你fork一个仓库时,默认情况下只会复制该仓库的代码,而不会自动fork其引用的子模块(submodule)或其他依赖的模块。如果你需要同时fork这些子模块,你需要手动进行一些操作。以下是详细的步骤:
步骤一:Fork 主仓库
- 前往你想要fork的主仓库页面。
- 点击右上角的 “Fork” 按钮,将主仓库fork到你的账号下。
步骤二:克隆你的Fork
- 在你的GitHub账号下找到刚刚fork的仓库。
- 复制该仓库的SSH或HTTPS克隆地址。
- 在本地终端中执行以下命令克隆仓库:
1
git clone <克隆地址>
步骤三:初始化并更新子模块
- 进入克隆下来的仓库目录:
1
cd <仓库名称>
- 初始化子模块:
1
git submodule update --init --recursive
这条命令会根据
.gitmodules
文件中的配置,初始化并克隆所有子模块。
步骤四:Fork 子模块
- 进入每个子模块的目录:
1
cd path/to/submodule
- 在GitHub上找到该子模块的原始仓库,手动点击 “Fork” 按钮将其fork到你的账号下。
- 回到本地终端,将子模块的远程仓库地址修改为你的fork地址:
1
git remote set-url origin <你的fork地址>
步骤五:更新主仓库的子模块引用
- 回到主仓库的目录:
1
cd ../..
- 编辑
.gitmodules
文件,将子模块的URL更新为你的fork地址。 - 提交更改并推送到你的远程仓库:
1 2 3
git add .gitmodules git commit -m "Update submodule URLs to my forks" git push origin main
步骤六:在本地更新子模块
- 再次更新子模块以确保所有引用都正确:
1
git submodule update --remote
本文由作者按照
CC BY 4.0
进行授权