ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Git 子模块

2022-02-22 22:34:51  阅读:206  来源: 互联网

标签:src git update submodule Git common 模块


Git 子模块允许你将一个 Git 仓库作为另一个 Git 仓库的子目录,它能让你将另一个仓库克隆到自己的项目中,同时还保持提交的独立。

示例代码使用的值如下:

  • 主仓库路径:github.com/base.git

  • 子模块仓库:github.com/common.git

  • 子模块在主仓库路径:src/common

子模块操作

添加子模块

在主仓库执行 git submoudle add <url> <repo_name>,执行后会在主仓库下创建一个 repo_name 目录存放子项目;并会创建一个 .git 隐藏文件

git submoudle add github.com/common.git src/common

添加子模块后,主仓库会增加一个 .gitmodules 文件,记录子模块信息

# .gitmodules 文件
[submodule "src/common"]
	path = src/common
	url = github.com/common.git

查看子模块

git submodule
# 输出:f5dfd8b05f594ca3c914393e7c641e3ff5285373 src/common (remotes/origin/HEAD)

初始化子模块配置

git submodule init

更新子模块

# 更新全部子模块
git submodule update
# 更新指定子模块
git submodule update src/common

# 递归更新子模块
git submodule update --init --recursive

# 更新子模块到服务器最新版本
git submodule update --remote

提交子模块代码

子模块的默认分支不是 master ,进入目录后需要先切换分支,再修改提交代码

cd src/common
git checkout master
git add .
git commit -m "update"
git push

删除子模块

执行命令后,会删除 src/common 文件夹和修改 .gitmodules 文件

git rm src/common
git commit -m "remove submodule"
git push

本地子模块相关文件(非必须删除):

  • 删除 .git/config 文件中相关配置

  • 删除 .git/modules/src/common 文件夹

克隆包含子模块的主项目

在克隆主项目时,会包含子模块目录,但目录中没有任何文件,此时需要初始化子模块配置,然后再更新子模块,才会获取到对应的文件

git clone github.com/base.git
cd base
git submodule init
git submodule update

原文链接:Git子模块

标签:src,git,update,submodule,Git,common,模块
来源: https://www.cnblogs.com/renjt1991/p/15925259.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有