2023-12-09    2023-12-09    269 字  1 分钟

git submodule 操作

添加

  • 不指定分支
1
2
3
git submodule add url <path>
# url: 子模块的路径
# path: 子模块存放路径
  • 指定分支
1
git submodule add -b brach https://github.com/t/b.git a/a

使用

1
2
3
4
git submodule update --init --recursive
# 等价于:
git submodule init
git sumbodule update

更新

1
2
3
4
cd 子模块
git pull
# or
git submodule update --remote

删除

  1. 删除子模块目录
    1
    
    rm -rf 子模块
    
  2. 删除 .gitmodules 中对应子模块的内容
    1
    
    vim .gitmodules
    
  3. 删除.git/config 配置中的对应子模块内容
    1
    
    vim .git/config
    
  4. 删除 .git/modules 下对应子模块文件
    1
    
    rm -rf .git/modules/zmk
    
  5. 删除 git 索引中对应子模块
    1
    
    git rm --cached 子模块
    

修改子模块的 url

  1. 手动修改 .gitmodules 文件对应内容
1
2
3
4
5
# vim .gitmodules
[submodule "src/Hyena"]
    path = src/Hyena
    url = https://gitlab.gnome.org/Archive/hyena.git
    branch = gtk2
  1. 执行命令更新
1
2
git submodule sync
git submodule update --init

参考

  1. git submodule 添加、更新和删除 - JYRoy - 博客园
  2. git submodule 修改 url 生效_51CTO 博客_git remote set-url