git submodule 操作
git submodule 操作
项目中经常使用别人维护的模块,在git中使用子模块的功能能够大大提高开发效率。使用子模块后,不必负责子模块的维护,只需要在必要的时候同步更新子模块即可。
- 想要在一个工程中使用另一个工程,但是那个工程包含了单独的提交记录,submodule 就可以实现在一个工程中引入另一个工程,同时保留二者的提交记录并且区分开来;目前 submodule 还能实现单独开发子工程,并且不会影响父工程,父工程可以在需要的时候更新子模块的版本;
- 想要把一个工程拆分成多个仓库并进行集中管理,这可以用来实现 git 当前的限制,实现更细粒度的访问,解决当仓库过于庞大时所出现的传输量大、提交记录冗杂、权限分设等问题;
增
添加 Submodule
git submodule add <repo> [<dir>] [-b <branch>] [<path>] # 其中,url为子模块的路径,path为该子模块存储的目录路径。 # 执行成功后,git status会看到项目中修改了.gitmodules,并增加了一个新文件(为刚刚添加的路径) # .gitmodules文件:保存项目 URL 与已经拉取的本地目录之间的映射,有多个子模块则含有多条记录,会随着版本控制一起被拉去和推送的。
示例:
cd yourProject git submodule add https://github.com/imtianx/liba.git
删
删除改子模块
1. 删除子模块文件夹 $ git rm --cached assets $ rm -rf assets 2. 删除.gitmodules文件中相关子模块信息 [submodule "assets"] path = assets url = https://github.com/maonx/vimwiki-assets.git 3. 删除.git/config中的相关子模块信息 [submodule "assets"] url = https://github.com/maonx/vimwiki-assets.git 4. 删除.git文件夹中的相关子模块文件 $ rm -rf .git/modules/assets
改
修改子模块
在子模块中修改文件后,直接提交到远程项目分支。
$ git add . $ git ci -m "commit" $ git push origin HEAD:master
更新子模块
进入到子模块目录下,执行 git pull更新 或者 git submodule update
查
查看子模块
git submodule e33f854d3f51f5ebd771a68da05ad0371a3c0570 assets (heads/master)
如何让submodule 同步更新最新commit
加那个.gitextras
标签:
git
, git submodule
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2020-04-12 Protocol buffers--python 实践 简介以及安装与使用