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

来源:站长平台

原文地址:https://www.cnblogs.com/1994jinnan/p/12178063.html

时间: 2024-10-08 10:59:47

git submodule 管理子项目的相关文章

使用git submodule管理一个需要多个分立开发或者第三方repo的项目

在项目开发中,特别是web前端开发中,有非常多的开源第三方library,我们希望引用他们,同时也希望能够方便地保持这些第三方 开源repo的更新.另外一方面如果我们自己在开发一个网站的项目,这个项目一般分为前端和后端两个相对独立的子项目,特别是前端的repo可能在不同的项目中共享,那么这时,你就可能希望将项目分开为前端和后端两个repo,如何管理这种情况呢?一个比较好的方案就是使用git的submodule功能. 假设我们的父repo在prepo目录,sumodule newtestrepo希

[转]使用Git Submodule管理子模块

本文转自:https://blog.csdn.net/qq_37788558/article/details/78668345 实例代码: 父项目:https://github.com/jjz/pod-project 子项目:https://github.com/jjz/pod-library 使用场景 基于公司的多项目,我们提取了一个公共的类库提供给多个项目使用,但是这个library怎么和git在一起方便的管理呢? 需要解决以下的几个问题: 如何在git项目中导入library库? libr

Git Submodule管理项目子模块

使用场景 当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能. 常用命令 git clone <repository> --recursive 递归的方式克隆整个项目 git submodule add <repository> <path> 添加子模块 git submodule init 初始化子模块 git submodule update 更新子模块 gi

git submodule 管理子工程

摘要:当多人共同维护一个项目时,必然需要进行模块化开发,所以使用submodule来管理子工程很有必要.本文以图文并貌的形势进行一步步搭建主工程及绑定子工程. 1.在Github上分别建立主工程HDMasterProject和两个子工程(动态/静态库)HDSubProjectOne.HDSubProjectTwo. SZ-denglibing:~ fangdd$ cd /Harry/Projects/HDMaster-SubProject/HDMasterProject SZ-denglibin

git之git submodule

git之git submodule 场景一 在本地仓库中,添加远程仓库作为子仓库. 添加submodule工程 git submodule add XXX.git 在本地仓库中,添加一个空仓库作为子仓库 git add .gitmodules (sumodule-name) git commit git submodule init 提交submodule修改 如果修改了submodule仓库的内容 git status git add . git commit git push 然后在主仓库中

Git subtree和Git submodule

git submodule允许其他的仓库指定以一个commit嵌入仓库的子目录. git subtree替代git submodule命令,合并子仓库到项目中的子目录.不用像submodule那样每次子项目修改了后要init和update.万一哪次没update就直接"commit -a" 或者 "add ." 全commit上去就悲剧了. git subtree虽然比git submodule更好用,但也不是特别完美的解决方案,使用时一定要特别注意. git-su

在SourceTree中使用Git submodule

在開發的過程中我們的項目可能會引用其他的版本庫中的代碼, 例如公司已經累積了一套公用的函式庫, 被多個項目調用;  很顯然地, 不能把公用函式庫的文件直接放到我們開發中的項目中, 這樣不但項目的冗餘, 也增加維護的難度, 無疑是替自己找麻煩. 這時候我們就可以使用Git中submodule功能, 來管理我們的子模版, 在這裡我們配合使用GUI SourceTree(以下就簡稱ST吧), 以下就進入正文囉...... 1. 準備工作 首先我們先建立兩個Repository分別叫smMain以及sm

[廖雪峰] Git 分支管理策略

通常,合并分支时,如果可能,Git 会用 Fast forward 模式,但这种模式下,删除分支后,会丢掉分支信息. 如果要强制 禁用 Fast forward 模式,Git 就会在 merge 时生成一个新的 commit,这样,从分支历史上就可以看出分支信息. 下面我们实战一下 --no-ff 方式的 git merge: 首先,仍然创建并切换 dev 分支: $ git checkout -b dev Switched to a new branch 'dev' 修改 readme.txt

Windows环境下通过Git来管理自己的Android代码

前面已经介绍了在Windows下使用git工具来下载Android的源码,Windows环境下通过Git得到Android源代码,这里记录我使用git工具来管理我自己的代码,git是一种分布式的项目管理工具而CVS及SVN都是集中式的版本控制系统集中式版本控制系统最大的毛病就是必须联网才能工作,分布式版本控制系统根本没有"中央服务器",每个人的电脑上都是一个完整的版本库,这样,你工作的时候,就不需要联网了,因为版本库就在你自己的电脑上,分布式和集中式通过以下两张图会清楚点 Window