使用场景
有时候我们会遇到这样的需求,两个版本仓库 A 和 B 都是分离的,但是 A 仓库又依赖于 B 仓库,这种情况下我们就需要配置 B 仓库为 A 仓库的子模块,当拉取 A 仓库的时候 B 仓库也会跟随着被拉取下来,就是说把 A 仓库和 B 仓库当做类似一个项目来使用。
配置方法
1. 使用 git 的子模块来配置此方法,步骤:
拉取 A 仓库:
git clone .../A.git
cd A
git submodule add .../B.git #在A仓库添加B仓库为子模块
git status
git add . #重新提交A仓库
git commit -m 'add submodule B.git'
git push origin master
2. 子模块发生变更之后 push 到远程仓库需要注意如下顺序:
1. 首先在子模块中进行一次 push
2. 然后在主仓库进行一次 push
cd B
echo "This is a submodule" > a.txt
git add .
git commit -m 'add a.txt'
git push origin master
cd ..
git status
git add .
git commit 'update submodule B add a.txt'
git push origin master
3. 克隆带有子模块的仓库的两种方法:
方法一:先克隆父项目,然后执行命令初始化和更新子项目
git clone .../A.git
cd A
git submodule init
git submodule update
方法二:递归克隆
git clone A.git --recursive
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于