zoukankan      html  css  js  c++  java
  • git submodule 管理子项目

    使用场景

    拆分项目,当项目越来越大之后,我们希望 子模块 可以单独管理,并由 专门 的人去维护,这个时候只可以使用 git submodule 去完成。

    常用命令

    git clone <repository> --recursive # 递归方式克隆整个项目
    git submodule add <repository> path # 添加子模块
    git submodule init # 初始化子模块
    git submodule update # 更新子模块
    git submodule foreach git pull # 拉取所有子模块
    

    使用方式

    添加子模块

    git submodule add <repository> path 即可添加

    克隆子模块

    git clone <repository> --recursive 直接递归克隆,如果是克隆父项目,可以在克隆完成之后,使用 git submodule init 初始化子项目列表和 git submodule update 更新最新的子项目。

    更新子模块

    如果子模块和新的修改,但是父项目没有更新到最新,则可以使用 git submodule foreach git pull 将所有的子项目中更新,如果子项目比 .gitmodules 新,则需要更新一下 .gitmodules

    父项目中的子模块的版本是由 commit id 标识的,所以需要更新 .gitmodules

    删除子模块

    首先需要 git rm --cached <path> ,然后依次删除对应的目录、.gitmodules 文件中的记录、 .git/cofig 中的记录。再提交到远程服务器,就可以删除了。

    注意:

    在执行 git rm --cached <path> 的时候,最后不可以有 /

    修改子模块配置信息

    与删除相同,需要同时修改 .gitmodules.git/config 两个文件中的 URL 值,然后执行 git submodule sync 来同步,然后再提交到远程即可。

    花間酒氣;竹裹棋聲。 山奔海立;沙起雷行。 風雲論道;筆墨通天。
  • 相关阅读:
    Numpy基础
    Numpy基础
    Java复习之数组
    Java复习之数组
    Python基础2
    第六章 3 列表生成式
    第六章 1 列表(创建,特点)
    IEEE(电气和电子工程师协会)会议排名
    第五章 3 流程控制语句break和continue
    第五章 2 循环结构
  • 原文地址:https://www.cnblogs.com/banshiliuli1990/p/12177537.html
Copyright © 2011-2022 走看看