GIT中对子仓库的使用方法介绍

git 子仓库
主仓库中添加子仓库
git submodule add <url> <path>
更新子代码代码
git submodule update --init
克隆含有子仓库的仓库
git clone --recurse-submodules <url>

主仓库中删除子仓库

1、进入包含子仓库的父仓库的根目录
2、使用以下命令将子仓库从父仓库中移除(解除关联)
git submodule deinit <submodule_path>、
3、使用以下命令从 Git 仓库中删除子仓库的记录
git rm <submodule_path>
4、执行 git commit 来提交父仓库的修改
git commit -m "Remove submodule <submodule_path>"
5、最后,删除实际的子仓库文件。你可以手动删除相关的子目录,或者使用以下命令删除子仓库目录:
rm -rf <submodule_path>
子仓库 push 提交到 gerrit 出现没有 change-id ?

由于子仓库在 clone 后,仓库的 .git 目录中,没有 hook/commit-msg 工具
所以在生成的 commit message 中,不会自动增加change-id
这会导致 commit 无法 pushgerrit上走 review 的流程

请使用以下方法增加 commit-msg tool 到子仓库的 .git 目录中:

cd `awk '{printf $2}' .git`/hooks
wget http://192.168.0.202:8002/tools/hooks/commit-msg
chmod +x commit-msg
cd -

对于没有 change-idcommit 可以使用 git commit --amend 或者 git rebase -i 重新增加 change-id
有了 change-id 后即可以顺利 push

拉取子仓库时,避免重复输入用户名和密码
git config --global http.postBuffer 524288000

在父仓库根目录中执行

git submodule update --remote

该命令会根据 .gitmodules 中每个子仓库的分支,同步至远程仓库对应分支的最新节点。
(所以请确保 .gitmodules 每个子仓库的分支名是正确的)

  • 9
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

kunsir_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值