git submodule 使用命令简介
2016-01-21 16:02
483 查看
抽取项目公共模块,多项目共用,必然会使用到git submodule命令。
项目中submodule的管理,无外乎添加,更新,删除等操作。
git submodule add [-b master ] [URL to Git repo] [local path]
其中,[-b master] 为submodule的默认分支,[local path]为submodule的本地路径。
若出现如下提示,则表示submodule添加成功。
命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules”的文件,其中记录了子模块的信息,如下:
git clone 父项目.git
git submodule init
git submodule update (update时,submodule分支必须已在正确分支上)
submodule远程分支发生变更后,直接使用git submodule update是不会进行更新操作的。必须依次进入到各个submodule的目录,进行git pull操作,如果submodule数目很多,每次发版本时必须进入所有目录进行git pull,这将是噩梦。不过有个更简单的方法,
git submodule foreach git checkout master
git submodule foreach git pull
删除 [项目根目录/.gitmodules] 中对应的条目
删除 [项目根目录/.git/config] 中对应的条目
删除 [项目根目录/.git/modules] 目录下的对应的submodule文件夹
执行 git rm –cached [modulename] 命令
删除 submodule 模块内容
项目中submodule的管理,无外乎添加,更新,删除等操作。
1. submodule 添加
进入到git项目根目录下,输入命令:git submodule add [-b master ] [URL to Git repo] [local path]
其中,[-b master] 为submodule的默认分支,[local path]为submodule的本地路径。
若出现如下提示,则表示submodule添加成功。
命令执行完成,会在当前工程根路径下生成一个名为“.gitmodules”的文件,其中记录了子模块的信息,如下:
[submodule "libraries/pushserver"] path = libraries/pushserver //本地路径 url = git@*****/android-library-push.git //仓库地址 branch = master //默认分支
2. submodule 更新
若项目中包含.gitmodules, 进入到git项目根目录下,输入命令, .gitmodules中的所有项目都会进行更新:git clone 父项目.git
git submodule init
git submodule update (update时,submodule分支必须已在正确分支上)
submodule远程分支发生变更后,直接使用git submodule update是不会进行更新操作的。必须依次进入到各个submodule的目录,进行git pull操作,如果submodule数目很多,每次发版本时必须进入所有目录进行git pull,这将是噩梦。不过有个更简单的方法,
git submodule foreach git checkout master
git submodule foreach git pull
3. submodule 删除
删除submodule会麻烦些,仅仅删除submodule模块内容,是无法彻底从git中删除掉。还需要到git相关配置文件中删除条目。删除 [项目根目录/.gitmodules] 中对应的条目
删除 [项目根目录/.git/config] 中对应的条目
删除 [项目根目录/.git/modules] 目录下的对应的submodule文件夹
执行 git rm –cached [modulename] 命令
删除 submodule 模块内容
相关文章推荐
- 简化代码:求三个数的最大值
- 给自学嵌入式的工程师朋友们推荐好书
- 观察者模式
- ios9 http请求失败的问题
- C# 采用HttpWebRequest 自定义头信息 上传文件
- 同时操作多条信息,使用关键字in
- spring
- Visual Tracking via Adaptive Structural Local Sparse Appearance Model
- Activiti工作流(三)——流程变量
- C++88个注意点子之51~70
- Android 动态显示隐藏EditText 输入框内容
- Robust Object Tracking via Sparsity-based Collaborative Model
- windows下如何使用软件来查看本机BIOS的类型
- 关于数组的一段代码
- 使用百度地图时出现com.baidu.platform.comjni.map.commonmemcache.JNICommonMemCache
- H323协议和polyxom,华为视频会议终端调试出现的问题
- 日志级别的选择:Debug、Info、Warn、Error还是Fatal
- Java继承和多态===Java static关键字以及Java静态变量和静态方法
- 关于个人的一些东西
- grep及正则表达式