赞
踩
在平时的开发过程中,经常使用git仓库进行代码管理,对于项目组不同工作权限,也可以对项目文档进行管理,通过顶层仓库对各成员的子仓库进行汇总,配置不同成员的访问权限,可以起到很好的项目资料共享与管理。
子模块(submodule)是一种将一个 Git 仓库作为另一个 Git 仓库的子目录进行管理的方法。它允许你将一个 Git 仓库嵌套到另一个仓库中,并保持提交的独立。
子模块有以下几个用处:
通过仓库管理架构关系,建立对应的文件夹,在主仓库文件夹下分别建立子仓库1、2、3,层次如下:
建立子仓库1:https://gitee.com/****/sub-warehouse-1.git
建立子仓库2:https://gitee.com/****/sub-warehouse-2.git
建立子仓库3:https://gitee.com/****/sub-warehouse-3.git
建立主仓库:https://gitee.com/****/main-warehouse.git
(1)在本地子仓库1目录下,右键选择-->Git在这里创建版本库->确定;创建版本仓库。
(2)建立本地文件子仓库1与服务器远端仓库连接,右键选择TortoiseGit->设置,填入服务器远端仓库URL,后续的本地仓库通过此URL地址和远端仓库进行关联。
同理,将本地仓库2、3、主仓库与远端同样建立关联,关联完成后如下图所示:
在主仓库文件夹下添加子仓库1、2、3三个子模块,右键选择TortoiseGit->添加子模块
在弹出的添加子模块界面中,填入版本库即远端服务器仓库URL,路径即本地仓库文件夹路径;
此时会在主仓库文件路径下生成.gitmodules文件;
.gitmodules文件内容如下,包含子模块信息:
依次添加完子仓库1、2、3后,.gitmodules文件信息如下,表明添加成功;
在本地主仓库文件目录下推送至远程主仓库,可在远程主仓库列表下可查看到子模块
(1)验证推送功能
在子仓库1目录下,包含子仓库1测试.txt文件,文件内容初始为“子仓库1测试”,
添加修改内容如下:
在主仓库目录下,右键点击->提交git,勾选更改的子仓库1,点击提交
此时产生如下提示:
表示在更新父工程的同时,需要提交子仓库模块的修改,点击提交进行子模块修改
子仓库模块本地提交成功后,点击推送,进行更新远程子仓库1,成功后再对主仓库进行提交,然后推送至远程主仓库,推送成功如下图所示
查看远程子仓库1,哈希标志由原来的8ea6b9c变更成ffd5edf,表示子仓库更新成功,查看内容为更新后的内容。
查看主仓库,此时主仓库里面子仓库1为更改后的哈希标志ffd5edf,表示推送更新成功。
(2)验证拉取功能
在远程子仓库2下“子仓库2测试.txt”文档下增加如下内容并提交。
提交成功后,子仓库2的哈希标号已经修改,表明修改提交成功。
此时进入主仓库查看,子仓库2仍为旧的哈希标号,因为此时主仓库并未自动更新,需要手动更新操作。
回到本地主仓库目录下,右击TortoiseGit->更新子模块,对子仓库模块更新内容。
更新成功后,进入本地子仓库2文件夹,打开“子仓库2测试.txt”文件,发现内容已更新。
回到本地主仓库文件夹,对更新后的主仓库提交,提示子仓库2内容修改。
提交成功后,再点击推送,将修改内容推送到远端主仓库更新。
推送成功后,查看远程主仓库,此时子仓库2的哈希标号进行了更新。
最后验证远程主仓库的整体拉取备份,在本地单独新建test文件夹,设置为主仓库版本库,关联远程主仓库URL,将远程主仓库内容整体拉取到本地test文件夹,拉取成功后,此时子仓库1、2、3文件夹均为空文件夹。
此时在test文件夹下,对主仓库的子模块进行更新,右击TortoiseGit->更新子模块。
进行如下勾选
等待更新子模块完成。
此时进本地入test文件夹下子仓库1文件夹查看,包含如下文件
打开“子仓库1测试.txt”文件查看,为最后的更新内容。
此时,对于主仓库管理子仓库模块的推送和拉取测试成功。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。