在Git上使用另一个Git-Git Submodules(子模组)

前言

在某家A开头的公司曾经遇到一个问题,其实我们登入都是捞取另外一个资料库去比对帐号密码,但是每次我们写不同系统的时候,都还要每次Copy一份;这时候我的一个前辈找到一个解法:打包成Dll然后架设私人的Nuget Package Server,希望所有人能一起更改Code而且不用对版本号;有一天又聊这件事情的时候,他又突然说可以用Git 子模组就好了!后来听听概念后也没有时间实作。在我离开公司后,把他搭配VS实作出来,前一阵子约出来跟他聊天后,结果他..给..我..忘..记..这..件..事..情!还..一..脸..惊..呆!

环境架构

windows10
git 2.17.1
TortoiseGit 2.7

前置安装

1.安装Git

Git 介绍与在Windows系统下安装

2.安装TortoiseGit(如果习惯用Command可以不用安装)

TortoiseGit | 傻瓜GIT教学

操作方式

现在方式是使用TortoiseGit的方式,如果要用其他想要Command Line之后补上

1.找寻一个有要加入子模组的Git和子模组的Git

如下图,有三个Git
Test、TestSon、TestGrandson
那我们设定的逻辑 TestGrandson 要在 TestSon 底下,然后TestSon要在Test底下
http://img2.58codes.com/2024/201135424fQHsElCiu.png

我们先看三个人内容
Test里面有Test.txt
http://img2.58codes.com/2024/20113542L6w68dq1ar.png

TestSon里面有TestSon.txt
http://img2.58codes.com/2024/20113542qJDAv3Sywc.png

TestGrandson里面有TestGrandson.txt
http://img2.58codes.com/2024/20113542JVTCLNMHUC.png

2.开始加入子模组

先以把TestGrandson加入TestSon为例

到TestSon底下的资料夹按右键,
1.先选TortoiiseGit
2.然后选Submodule Add
http://img2.58codes.com/2024/20113542xy8LinvMZ9.png

加入子模组设定
1.你要加入的子模组
2.你要把子模组加入到哪一个路径(切记指定的路径不能有同名的资料夹)
3.确认
http://img2.58codes.com/2024/201135425ZLooDtWnm.png

完成后出现的图示
1.刚刚你设定子模组的路径
2..gitmodulesGit:关于子模组的纪录档
http://img2.58codes.com/2024/20113542KN1RzGVz4O.png

检查一下TestGrandSon里面是不是有东西
http://img2.58codes.com/2024/20113542JerBGTBP4l.png

恩~看起来没错
然后把加入后记得把**.gitmodulesGit** 和加入的子模组 Commit上去
这样就大功告成啦!
http://img2.58codes.com/2024/20113542XirWsWFErX.png

进阶操作

如果你想加入的子模组里面又带一个子模组,会怎么样子呢?

操作方式如 前面的操作方式一样

我以把TestSon加入到Test为例
直接显示结果

恩~Test里面有TestSon没错
http://img2.58codes.com/2024/20113542RhKsHTlqQU.png

恩~TestSon资料夹里面有TestGrandSon 也没错
http://img2.58codes.com/2024/20113542Xm3SthacZY.png

在TestGrandSon 资料夹里面居然是空的!!
http://img2.58codes.com/2024/20113542YDpoW1QN2V.png

这时候小技巧就来了
到TestGrandSon资料夹里面按右键
1.先选TortoiiseGit
2.然后选Submodule Update
http://img2.58codes.com/2024/20113542FhyEKR3BxU.png

选取Whole Project
http://img2.58codes.com/2024/20113542XNUlRnKXPu.png

选完后会这样
1.选取你想要Update的Submodule
2.选择Initialize submodules (--init) 初始化Submodule
3.按确认
http://img2.58codes.com/2024/20113542fcYY5diNgN.png

确认完后,她就帮你更新
就出现资料啦,大功告成
http://img2.58codes.com/2024/20113542rmpuIoLvnI.png

感想

子模组是一个开发不错的方法,有时候你专案需要把东西切成模组,但是又想要能随时更改,使用Git子模组是一个不错的方式,感谢之前的前辈总是想一些怪点子、KeyWord(他每次讲完都常常忘记),让我到现在能回去找相关资料研究起来。

参考文件

Git 工具 - 子模组 (Submodules)
Git 介绍与在Windows系统下安装
TortoiseGit | 傻瓜GIT教学


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章