添加子模块
git submodule add 子模块Git地址 <子模块相对路径>
例如:git submodule add git@gitee.com:Pycharm-Project/QQemailprocess.git 1_自己写的/1.4_网站工具/QQemailprocess
推送到主仓库中
git commit -m "xxx"
git push origin master
删除子模块
rm -rf 子模块目录 删除子模块目录及源码
vi .gitmodules 删除项目目录下.gitmodules文件中子模块相关条目
vi .git/config 删除配置项中子模块相关条目
sudo rm -r .git/modules/子模块目录 删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可
最后add commit push 三连。
拉取子模块
git clone 主仓库地址
此时,主仓库目录下会出现一堆子模块的空目录,如果想要拉取所有的子模块以及子模块下面的子模块,使用:
git submodule update --init --recursive
如果只是想拉取当前目录下所有的子模块,就去掉--recursive
git submodule update --init
如果只是想拉取指定子模块,使用:
git submodule update --init 子模块名字
更新子模块
当远程子模块有更新时,如果主仓库只想更新某个子模块,则进入该子模块:
git pull
如果想要更新所有子模块,则使用:
git submodule foreach git pull
修改并提交子模块
先进入到子模块目录,然后像正常的仓库一样,进行修改,然后
git checkout master
git add .
git commit -m "xxx"
git push origin master
此时子模块原始仓库已经更新了,但是主仓库还是指向子模块的旧ID,所以下一步是需要更新主仓库的指向,回到主仓库的目录,然后:
git commit -am "xxx"
git push origin master
其他
任何时候,只要我们对子模块的修改不满意,想要回到原来的状态,只要没重新指向新的ID,就可以在主仓库目录下使用git submodule update进行回退。
[qgg_green]如果单独修改子模块的仓库(比如单独clone子模块,然后修改并提交到该模块仓库),是不会影响到整个主仓库的,另外更新子模块需要checkout,不然会变成游离状态,可以用git reflog命令查看。[/qgg_green]




最新评论
博主好,路过留言交流一下~我在做源头中转 Twinkle Model(利益相关):GPT 1折、国模 1折(GLM/DeepSeek/Kimi)、满血 Claude,低价稳定。价格全在模型广场 https://big-model.smart-agi.com/model-plaza ,有兴趣可以看看。
博主分享的 Surge 增强模式接管应用分流思路很赞!确实,系统大版本升级后,老牌 Proxifier 由于底层驱动兼容性问题经常莫名崩溃。在 Mac 上有 Surge 这种神器接管,但是在 Windows 平台上,很多人又很难找到兼顾‘轻量分流+稳定不崩溃’的工具:ProxiFyre 依赖 WireSock 内核驱动容易蓝屏且纯命令行,开 TUN 虚拟网卡又会把开发网段和公司 VPN 改乱。 如果是 Windows 用户寻找 Proxifier 替代品,非常推荐关注 Ghost Proxifier Pro: - 纯用户态 Winsock API Hook:完全免安装内核驱动和虚拟网卡,零蓝屏隐患,不改动系统默认网关与路由表; - 智能递归子进程树:很多现代客户端(如播放器、流媒体套件、IDE)会派生子进程,它能自动递归识别并接管流量,杜绝漏代理; - 现代 Fluent 图形界面:直接拖入目标 exe 即可一键绑定 SOCKS5/HTTP 节点,比老版配置规则直观很多。 注:该工具为非开源的独立客户端软件。 - 官网主页:https://ghostproxifier.com - 项目发布:https://github.com/liliBestCoder/ghost-proxifier-pro
曾经最爱之一,还有emlog,zblog
感谢分享经验,谢谢站长!!已收藏
牛牛牛
同样
站长您好,亚马逊云咨询推广资源,望建立联系,可邮件,谢谢。
换友情链接吗?