Gitsubmodel的用法

Git Submodule 是 Git 中用于管理子模块的命令,子模块是一个独立的 Git 仓库,嵌套在主仓库中。它适合用来引用外部项目或库。以下是两种常见的使用方式:


方式一:先有两个项目后建立关联

1.创建并初始化主仓库(GitMainModel)

GitMainModel目录下添加mainmodel.txt文件

cd ./GitMainModel
git init
git remote add origin http://192.168.82.188:3000/zq/GitMainModel.git
git commit -m "GitMainModel first commit"
git push -u origin master

2.创建并初始化子模块仓库(GitSubModel)

在GitSubModel目录下添加submodel.txt文件

cd ./GitSubModel
git init
git remote add origin http://192.168.82.188:3000/zq/GitSubModel.git
git commit -m "GitSubModel first commit"
git push -u origin master

3.在主仓库中添加子模块

cd ./GitMainModel
git submodule add http://192.168.82.188:3000/zq/GitSubModel.git ./GitSubmodel
git commit -m "Add GitSubModel as submodule"
git push

方式二:将现有项目中的模块独立为子模块

总的说处理步骤就是先将子模块代码提交到新仓库,然后将子模块从主模块git中删除,在使用方式一进行关联

1.将子模块代码提交到新仓库

cd ./GitSubModel
git init
git remote add origin http://192.168.82.188:3000/zq/GitSubModel.git
git add .
git commit -m "Initial commit for GitSubModel"
git push -u origin master

2.在主仓库中删除子模块代码

cd ./GitMainModel
git rm -r ./GitSubmodel
git commit -m "Remove GitSubModel from main repository"
git push

3.在主仓库中添加子模块

git submodule add http://192.168.82.188:3000/zq/GitSubModel.git ./GitSubmodel
git commit -m "Add GitSubModel as submodule"
git push

相关常用命令总结

克隆包含子模块的仓库

# git clone 不会自动克隆子模块内容
git clone --recurse-submodules <repository_url>

查看子模块状态

git submodule status

更新子模块

git submodule update --remote

删除子模块

# 方式一:执行完成后可直接再次执行添加子模块
# 1.
git submodule deinit <submodule_path>
# 注:删除后git pull作用在主模块库上,可以使用git submodule update --remote重新拉取子模块

# 2.
rm -rf .git/modules/<submodule_path>
# 注:reset无法还原这个目录

# 3.
rm -rf <submodule_path>

# 4.
git rm <submodule_path>
# 注:会执行 1,3,并清空.gitmodules文件、处理index

# 5.
git commit -m "Remove submodule"


# 方式二:如果执行2可直接再次执行添加子模块
# 1.
git rm <submodule_path>

# 2.
rm -rf .git/modules/<submodule_path>
# 注:若未执行2,直接再次执行添加子模块,会提示本地git中保存了子模块
# 使用--force参数能够调出本地保存的子模块
# git submodule add --force http://192.168.82.188:3000/zq/GitSubModel.git ./GitSubmodel

主模块中编辑子模块

cd ./GitSubmodel
git add .
git commit -m "Update in submodule"
git push
cd ..
git add ./GitSubmodel
git commit -m "Update submodule reference"
git push

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值