Skip to content

mao888/go-main

Repository files navigation

goworkspace overview

Belong to my GO language learning space

一、 创建 submodule

1. git submodule add <submodule_url> 命令可以在项目中创建一个子模块。

二、获取 submodule

准备源代码

  1. git@github.com:mao888/goworkspace.git
  2. cd goworkspace
  3. git submodule init(注册所有模块,会检出所有模块,包括核心仓库和非核心仓库)(下一条命令,三选一)
  4. git submodule init argo bluebell go_web GoWeb_ToDoList uber_go_guide_cn(注册列出的模块,会检出对应模块)
  5. git submodule update --init --recursive 子模块代码也获取到
  6. git submodule sync
  7. git submodule update

三、子模块内容的更新

对于子模块而言,并不需要知道引用自己的主项目的存在。对于自身来讲,子模块就是一个完整的 Git 仓库,按照正常的 Git 代码管理规范操作即可。

对于主项目而言,子模块的内容发生变动时,通常有三种情况:

1)当前项目下子模块文件夹内的内容发生了未跟踪的内容变动;

2)当前项目下子模块文件夹内的内容发生了版本变化;

3)当前项目下子模块文件夹内的内容没变,远程有更新;

情况汇总 终上所述,可知在不同场景下子模块的更新方式如下:

对于子模块,只需要管理好自己的版本,并推送到远程分支即可; 对于父模块,若子模块版本信息未提交,需要更新子模块目录下的代码,并执行 commit 操作提交子模块版本信息; 对于父模块,若子模块版本信息已提交,需要使用 git submodule update ,Git 会自动根据子模块版本信息更新所有子模块目录的相关代码。

四、删除子模块

根据官方文档的说明,应该使用 git submodule deinit 命令卸载一个子模块。这个命令如果添加上参数 --force,则子模块工作区内即使有本地的修改,也会被移除。

  1. git submodule deinit <sub-module>
  2. git rm <sub-module>
  3. git commit -m "delete submodule project-sub-1"

附:Git - git-submodule Documentation

常见问题: - No submodule mapping found in .gitmodules for path ......

submodule repositories

  • [submodule "golang-guide"]

    • path = golang-guide
    • ssh = git@github.com:mao888/golang-guide.git
    • url = https://github.com/mao888/golang-guide.git
    • description = 「Golang学习+面试指南」一份涵盖大部分 Golang程序员所需要掌握的核心知识。准备 Golang面试,首选 GolangGuide!
  • [submodule "go_web/GoWeb_ToDoList"]

  • [submodule "bluebell"]

  • [submodule "argo"]

    • path = argo
    • ssh = git@github.com:mao888/argo.git
    • url = https://github.com/mao888/argo.git
    • description: 使用go语言实现数据结构与算法,涵盖字符串、数组、链表、队列、栈、树、图等数据结构。在实现算法的基础上,进行go语言实战。此外也包含经典算法在go实战项目中的应用,以及开源项目算法方面源码分析。
  • [submodule "uber_go_guide_cn"]

  • [submodule "GoWeb_ToDoList"]

  • [submodule "Microservice"]

  • [submodule "go-utils"]

  • [submodule "mao888"]

About

Belong to my GO language learning space

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published