如何使用git submodule:添加、查看、更新、修改、删除、克隆含submodule的项目

这篇具有很好参考价值的文章主要介绍了如何使用git submodule:添加、查看、更新、修改、删除、克隆含submodule的项目。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

作用

Git submodule 功能可以让我们在一个仓库中添加另一个仓库作为当前仓库的子仓库,这样既方便了代码管理,也免去我们重复造轮子的精力和时间。注意:Git submodules 只是某个仓库某一时刻的一个状态的引用,即某个 commit 的引用。

添加子模块

  • 添加远程项目默认分支
git submodule add https://github.com/maonx/vimwiki-assets.git submodule_filename
  • 添加远程项目指定分支
git submodule add -b dev git@ip:src/name.git submodule_filename

添加子模块后运行git status, 可以看到目录有增加1个文件.gitmodules, 这个文件用来保存子模块的信息。

查看子模块

git submodule

会显示如下内容

e33f854d3f51f5ebd771a68da05ad0371a3c0570 assets (heads/master)

更新子模块

git submodule update

修改子模块

在子模块中修改文件后,直接提交到远程项目分支。

git add . 
git commit -m "commit" 
git push origin HEAD:master

删除子模块

删除子模块比较麻烦,需要手动删除相关的文件,否则在添加子模块时有可能出现错误,同样以删除assets文件夹为例

  • 首先,删除子模块文件夹
git rm --cached assets rm -rf assets
  • 然后,删除.gitmodules文件中相关子模块信息

[submodule "assets"] 
    path = assets 
    url = https://github.com/maonx/vimwiki-assets.git
  • 接着,删除.git/config中的相关子模块信息

[submodule "assets"] 
    url = https://github.com/maonx/vimwiki-assets.git
  • 最后,删除.git文件夹中的相关子模块文件

rm -rf .git/modules/assets

克隆包含子模块的项目

git clone https://github.com/maonx/vimwiki-assets.git assets --recursive
  • --recursive:用于递归地初始化和更新项目/子模块中的子模块。如果项目/子模块中存在其他子模块,这个选项将确保所有子模块都被正确地初始化和更新。

更新submodule别名配置

用于更新项目中已存在的子模块,可在.bashrc.zshrc/etc/profile中按需增加下述别名配置

alias GSU="git submodule update --init --recursive"
  • --init:指示 Git 初始化未初始化的子模块。如果子模块尚未初始化,它将被初始化并配置为跟踪指定的远程仓库。

  • --recursive:用于递归地初始化和更新子模块中的子模块。如果子模块中存在其他子模块,这个选项将确保所有子模块都被正确地初始化和更新。文章来源地址https://www.toymoban.com/news/detail-757304.html

到了这里,关于如何使用git submodule:添加、查看、更新、修改、删除、克隆含submodule的项目的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • git submodule 如何同步更新

    git submodule 更新之后, 如果在父仓库里直接调用 “git submodule update --init --recursive” 会发现 子模块的代码不会更新。初学者会很迷惑,怎么能把子模块更新到最新呢?方法如下 从父仓库进入到modules目录(这个目录是submodule生成的),调用”git pull origin master“ cd modules git pu

    2024年02月11日
    浏览(75)
  • iptables 添加,删除,查看,修改,及docker运行时修改端口

    [root@linux ~]# /etc/init.d/iptables start   当我们用iptables添加规则,保存后,这些规则以文件的形势存在磁盘上的,以centos为例,文件地址是/etc/sysconfig/iptables,我们可以通过命令的方式去添加,修改,删除规则,也可以直接修改/etc/sysconfig/iptables这个文件就行了。 1,添加filter表

    2024年02月15日
    浏览(37)
  • 【⑮MySQL | 视图】概述 | 创建 | 查看 | 更新 | 修改 | 删除

    ✨欢迎来到小K的MySQL专栏,本节将为大家带来MySQL视图概述 | 创建 | 查看 | 更新 | 修改 | 删除的分享 ✨ 1.视图概述 1.1 为什么使用视图? 视图一方面可以帮我们使用表的一部分而不是整个表,另一方面也可以针对不同的用户顶置不同的查询视图。比如,针对公司的销售人员,

    2024年02月11日
    浏览(29)
  • git 使用 submodule 如何指定分支

    写在前面, 作为一个前端我是不喜欢使用 submodule的, 我更喜欢 npm 包的管理方式。 首次添加子模块 git submodule add -b branch remote path 不指定分支就不传 -b branch branch 分支名 remote 仓库地址 path 子模块路径, 也就是你的文件下载路径 示例: git submodule add -b stable https://github.com/example/

    2024年03月13日
    浏览(52)
  • Git的基本操作(安装Git,创建本地仓库,配置Git,添加、修改、回退、撤销修改、删除文件)

    Git 是开放源代码的代码托管⼯具,最早是在Linux下开发的。开始也只能应⽤于Linux平台,后⾯慢慢的被移植到windows下,现在,Git可以在Linux、Unix、Mac和Windows这⼏⼤平台上正常运⾏了。 如果你的的平台是centos,安装git相当简单,以我的centos7.6为例: 我们还可以用下面的指令来

    2024年03月28日
    浏览(54)
  • 5步删除 git submodule

    1. 删除submodule缓存 需要先暂存 .gitmodules 文件, 否则会报错: fatal: please stage your changes to .gitmodules or stash them to proceed 1 2 git add .gitmodules git rm --cached submodule_name 2. 删除submodule目录 1 rm -rf submodule_name 3. 修改.gitmodules 移除对应的submodule信息,只有1个submodule信息也可以删除该文件。

    2024年02月12日
    浏览(47)
  • 【git】添加子模块(submodule)

    有时候自己的项目需要用到别人的开源代码,例如 freertos 和 tinyusb 这个时候有两种选择 将开源的代码下载下来放到自己的 git 中管理 缺点:如果远端仓库更新,自己仓库的代码不会更新 将开源代码通过子模块(submodule)的形式加入到自己的仓库中 优点:自己仓库代码时刻和上

    2024年01月17日
    浏览(41)
  • GIT | 基础操作 | 初始化 | 添加文件 | 修改文件 | 版本回退 | 撤销修改 | 删除文件

    Git(读音为/gɪt/)是一个开源的分布式版本控制系统,可以有效、高速地处理从很小到非常大的项目版本管理。也是Linus Torvalds为了帮助管理Linux内核开发而开发的一个开放源码的版本控制软件。 我们这里就不多介绍这里的 GIT 了,百度百科和维基百科上都有很多介绍,我们这

    2024年02月05日
    浏览(29)
  • git 删除 submodule 子模块的步骤

    实验有效,这里删除了两个 submodule。 验证方法,当重新git clone 项目(先不加 --recursive 选项)后,   之后, ls .git/module 文件夹已经不存在 XXXX/ 与 YYYY/ 文件夹也不存在 这是就可以merge 进 master 中了。   其中,如果项目只有一个submodule,那么,删除 submodule 后,.gitmodules 中的

    2024年01月19日
    浏览(40)
  • git submodule 更新子仓库

        添加子仓库 git 允许一个git仓库作为另外一个git仓库的子仓库,并且保持父项目与子项目的相互独立。 命令为 git submodule add 仓库地址 本地路径     检出子仓库 克隆一个包含子仓库的仓库目录,并不会克隆子仓库的文件,只是会克隆下.gitmodule描述文件 需要进一步克隆

    2024年02月16日
    浏览(39)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包