Git子模块(submodule)简介
经常有这样的事情,当你在一个项目上工作时,你需要在其中使用另外一个项目。也许它是一个第三方开发的库或者是你独立开发和并在多个父项目中使用的。这个场景下一个常见的问题产生了:你想将两个项目单独处理但是又需要在其中一个中使用另外一个。
子模块允许你将一个 Git 仓库当作另外一个Git仓库的子目录。这允许你克隆另外一个仓库到你的项目中并且保持你的提交相对独立。
Git子模块用法
添加一个子模块
首先你要把外部的仓库克隆到你的子目录中。
假设你想把 pacman项目加入到你的blog项目中,你通过git submodule add
将外部项目加为子模块:
1 2 |
cd blog git submodule add https://gitcafe.com/aceking/pacman.git themes/pacman |
现在你就在项目里的themes/pacman子目录下有了一个 pacan项目。你可以进入那个子目录,进行变更,加入你自己的远程可写仓库来推送你的变更,从原始仓库拉取和归并等等。
.gitmodules文件: 这是一个配置文件,保存了项目 URL 和你拉取到的本地子目录。
克隆一个带子模块的项目
克隆你刚才创建子模块的项目。你将得到了包含子项目的目录,但里面没有文件:pacman目录存在了,但是是空的。
你必须运行两个命令:git submodule init
来初始化你的本地配置文件,git submodule update
来从那个项目拉取所有数据并检出你上层项目里所列的合适的提交。
1 2 3 |
cd blog git submodule init themes/pacaman git submodule update |
现在你的pacman子目录就处于你先前提交的确切状态了。
Fedora通过Http Proxy下载Git http://www.linuxidc.com/Linux/2009-12/23170.htm
在Ubuntu Server上安装Git http://www.linuxidc.com/Linux/2009-06/20421.htm
服务器端Git仓库的创建(Ubuntu) http://www.linuxidc.com/Linux/2011-02/32542.htm
Linux下Git简单使用教程(以Android为例) http://www.linuxidc.com/Linux/2010-11/29883.htm
Git权威指南 PDF高清中文版 http://www.linuxidc.com/Linux/2013-10/91053.htm
Git 2分钟指南 http://www.linuxidc.com/Linux/2014-11/109201.htm
Git 的详细介绍:请点这里
Git 的下载地址:请点这里
本文永久更新链接地址:http://www.linuxidc.com/Linux/2014-12/110771.htm