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 来同步,然后再提交到远程即可。

    花間酒氣;竹裹棋聲。 山奔海立;沙起雷行。 風雲論道;筆墨通天。
  • 相关阅读:
    13-7实现旅拍卡片布局-2
    13-6实现旅拍卡片布局-1
    13-5实现旅拍瀑布流布局-2
    13-4实现旅拍瀑布流布局-1
    13-3使用TabBar+TabBarView 实现旅拍可滑动切换多Tab
    13-2根据接口实现dao层
    13-1
    12-12本章小结
    12-11【锦上添花】Flutter AI只能语音搜索功能实现
    12-10【收货果实】Futter AI只能语音界面开发-2
  • 原文地址:https://www.cnblogs.com/banshiliuli1990/p/12177537.html
Copyright © 2011-2022 走看看