git submodule 使用教程

这篇具有很好参考价值的文章主要介绍了git submodule 使用教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1 submoude 介绍

(1)项目很大参与开发人员多的时候,需要将各个模块文件进行抽离单独管理。

(2)使用git submodule来对项目文件做成模块抽离,抽离出来的文件可单独成为一个git仓库。整个主项目对抽离出来的子项目(子模块)有依赖关系,却又并不关心子项目(子模块)的内部开发流程细节;

(3)代码如果全员可见,可以做成分支进行管理;如果代码不可见,可以创建为子仓库(独立一个git 仓库);子仓库管理模块代码,主仓库定时更新

(4)简单理解:项目工程为一个仓库;模块为一个仓库;主仓库操作git module命令来使用这个模块子仓库;主项目,子模块可由不同的开发人员维护。

2 带Submodule 模块的主项目仓库环境搭建

(1)克隆一个主项目仓库git_test

命令:git clone git@gitee.com:monkeyqiyu/git_test.git

 git submodule 提交,开发工具,git,github

(2)添加模块子仓库的路径到主项目中

执行添加子仓库的命令:

 git submodule add git@gitee.com:monkeyqiyu/git_submodule.git 

 //其中模块即子仓库的路径为:git@gitee.com:monkeyqiyu/git_submodule.git

git submodule 提交,开发工具,git,github

子模块仓库:

git submodule 提交,开发工具,git,github

注:git submodule 还支持嵌套开发

(3)提交代码到远程仓库

git add .

git commit - m  “添加子仓库到主仓库” 

git push origin master

git submodule 提交,开发工具,git,github

3 带Submodule 模块的主项目开发操作流程

3.1主仓库开发人员A克隆代码进行开发

(1)克隆主仓库代码,子仓库代码为空

 git clone git@gitee.com:monkeyqiyu/git_test.git   

git submodule 提交,开发工具,git,github

 git submodule 提交,开发工具,git,github

(2)执行以下命令,获取子仓库代码:

git submodule init  //初始化子仓库

git submodule update   //获取子仓库最新代码

或者直接执行:git submodule update --init --recursive

git submodule 提交,开发工具,git,github

 git submodule 提交,开发工具,git,github

3.2子仓库和主仓库修改后操作

(1) 非子仓库代码修改跟普通git操作一样提交代码

(2)主仓库由开发人员A开发,子仓库由开发人员B进行开发:

【1】发人员B开发完后提交代码到远程仓库;

【2】开发人员A要对submodule 模块进行更新

要执行下限命令对submodule进行更新,会更新最新的内容和commit id:

git submodule update --remote   

git submodule 提交,开发工具,git,github

再回到主项目仓库,对主项目进行一次提交,推送;把关联子仓库新的commit id提交推送到远程,下次克隆使用才不会出错!

git submodule 提交,开发工具,git,github

git submodule 提交,开发工具,git,github

远仓库主仓库中的子模块commit id有更新,点击会跳到子仓库

git submodule 提交,开发工具,git,github

3. 3 开发人员A同时管理主仓库和子仓库:

【1】子仓库代码有修改,要进入子仓库目录进行一次代码提交,推送远程

git add .

git commit -m "修改index = 100"

git push origin HEAD:master

【2】再回到主项目仓库,对主项目进行一次提交,推送

git add .

git commit -m "更新子仓库index = 100"

git push origin master

注:

     如果直接在主仓库目录执行git add .是不起作用的(可以使用git status查看 生效情况,只要子项目有修改,当我们进入主项目使用 git status查看状态 都会有子项目修改的记录);

      必须先提交推送子仓库代码,然后到主仓库路径提交一次子仓库的更新;

git submodule 提交,开发工具,git,github

4 主仓库中删除子仓库

(1)执行要删除的部分

rm -rf 子模块目录 //删除子模块目录及源码

vi .gitmodules  //删除项目目录下.gitmodules文件中子模块相关条目

vi .git/config   //删除配置项中子模块相关条目

rm .git/module/* //删除模块下的子模块目录,每个子模块对应一个目录,注意只删除对应的子模块目录即可

git rm --cached 子模块名称

(2)重新提交推送到远程仓库

git submodule 提交,开发工具,git,github

5、submodule 注意事项

(1)当远程仓库的 submodule 进行了新的提交,父代码仓库的 submodule 不会自动更新 (执行git pull 或gitsubmodule update也无用)

(2)主工程并不直接跟踪子模块的代码,而仅仅只跟踪子模块的 commit id 的改动。在执行 git submodule update 更新子模块代码时,Git 就是根据主工程所维护的 commit id 来更新子模块到指定状态的。

(3)在子模块中修改并提交了代码,必须到主工程把子模块的 commit id 提交一下提交一次;否则其它开发人员还是停留在老的commit id所致的状态文章来源地址https://www.toymoban.com/news/detail-744615.html

到了这里,关于git submodule 使用教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Git 管理工具 SourceTree 的使用(上手简单,不熟悉git命令的开发者必用)

    目录 一、SourceTree 概述 二、SourceTree 使用方法 1. 克隆 Git 仓库至本地 2. 推送本地的文件至远程仓库 3. 创建/切换/合并分支 4. 版本回退         SourceTree 是一款免费的 Git 和 Hg 客户端管理工具,支持 Git 项目的创建、克隆、提交、push、pull 和合并等操作。它拥有一个精美简

    2024年02月01日
    浏览(54)
  • 【手写数据库toadb】02 开发数据库内核准备阶段-git工具使用

    ​ 专栏内容 : 手写数据库toadb 本专栏主要介绍如何从零开发,开发的步骤,以及开发过程中的涉及的原理,遇到的问题等,让大家能跟上并且可以一起开发,让每个需要的人成为参与者。 本专栏会定期更新,对应的代码也会定期更新,每个阶段的代码会打上tag,方便阶段学

    2024年01月24日
    浏览(48)
  • Java之IDE开发工具eclipse下载安装使用详细教程

    熟练eclipse的使用 Eclipse是一个IDE(集成开发环境),集成了代码编写功能,分析功能,编译功能,调试功能等一体化的开发软件。 免费 Java语言编写 免安装 扩展性强 下载和安装 下载地址:http://eclipse.org 绿色版 解压就可以使用(Eclipse) 版本代号 平台版本 需要的JDK最低版本 Gal

    2024年04月14日
    浏览(105)
  • 【常用开发工具】保姆级教程Android Studio安装和基本使用

    🔎这里是【常用开发工具】,关注我学习编程不迷路 如果对你有帮助,给博主一个免费的点赞👍以示鼓励 欢迎各位🔎点赞👍评论收藏⭐️ 👀专栏介绍 【常用开发工具】 目前更新IDEA、Tomcat、Maven、Git等预计会开10+期,大家一起学习一起进步。 📢📢有写的不好或写错的地

    2023年04月16日
    浏览(64)
  • git submodule 使用教程

    (1)项目很大参与开发人员多的时候,需要将各个模块文件进行抽离单独管理。 (2)使用git submodule来对项目文件做成模块抽离,抽离出来的文件可单独成为一个git仓库。整个主项目对抽离出来的子项目(子模块)有依赖关系,却又并不关心子项目(子模块)的内部开发流程

    2024年02月05日
    浏览(50)
  • C/C++开发工具CLion使用教程:在 Windows 上配置 CLion(下)

    点击获CLion官方正式版 本文主要介绍在在 Windows 上配置 CLion中关于系统工具链的相关内容。 系统工具链 Windows 上的系统工具链允许在不选择预定义工具集或环境的情况下配置构建工具、编译器和调试器,类似于 Linux 和 macOS。将此工具链选项用于嵌入式开发案例,例如使用

    2024年02月06日
    浏览(67)
  • C/C++开发工具CLion使用教程:在 Windows 上配置 CLion(上)

    点击获CLion官方正式版 在 Windows 上, CLion 工具链包括构建工具、C 和 C++ 编译器、调试器可执行文件和环境。可以选择一种预定义的工具链设置(MinGW、Cygwin、Microsoft Visual C++或WSL)、Remote Host、Docker)或配置自定义工具链(System): ​ 点击观看此视频,了解 Windows 工具链选

    2024年02月06日
    浏览(51)
  • 【开发工具】适用于Windows的Linux子系统一一WSL安装使用教程

    一、简介 Windows Subsystem for Linux(简称WSL)是一个在Windows 1011上能够运行原生Linux二进制可执行文件(ELF格式)的兼容层。它是由微软与Canonical公司合作开发,其目标是使纯正的Ubuntu、Debian等映像能下载和解压到用户的本地计算机,并且映像内的工具和实用工具能在此子系统上

    2024年02月05日
    浏览(60)
  • mac升级Monterey12.6之后出现 git命令需要使用命令行开发者工具 安装选项的问题处理

    今天刚升级了最新的系统,升级后发现idea、webstorm等等需要git的全部无法使用了,总是弹出git命令需要使用命令行开发工具,提示让我安装,故以为是版本升级原因,那就安装吧,安装之后打开idea,又提示要安装,这。。。  好吧我再安装一次,然后我修改项目代码后,准备

    2024年02月11日
    浏览(45)
  • 【Linux】Linux环境基础开发工具的使用 ———(yum、vim、gcc&g++、gdb、make/Makefile、进度条 、git)

    (꒪ꇴ꒪(꒪ꇴ꒪ )🐣,我是 Scort 🎓 🌍博客主页:张小姐的猫~江湖背景🌍 快上车🚘,握好方向盘跟我有一起打天下嘞! 送给自己的一句鸡汤🤔: 🔥集中起来的意志可以击穿顽石🔥 🙏作者水平很有限,如果发现错误,可在评论区指正,感谢🙏 🎉🎉欢迎持续关注!🎉🎉

    2024年01月16日
    浏览(53)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包