Git Submodule从零开始学习

学习地址:http://www.kafeitu.me/git/2012/03/27/git-submodule.html
文章内全是命令,我对应照着做了下,并上了图方便理解。
一、我们切换到桌面执行mkdir -p submd/repos
这里 mkdir带上 -p就是递归创建目录的意思,即桌面上是没有submdrepos这两个文件夹的,执行命令后会创建这两个文件夹,如图

image.png

二、

cd ~/submd/repos
git --git-dir=lib1.git init --bare
git --git-dir=lib2.git init --bare
git --git-dir=project1.git init --bare
git --git-dir=project2.git init --bare

执行命令git --git-dir=lib1.git init --bare后,

image.png

剩余三条命令

image.png

三、

mkdir ~/submd/ws
cd ~/submd/ws

这里我是手动创建的,然后从这个创建的ws文件夹启动

image.png

实践证明原文还是不对,有些地方不对
这里 我们执行git clone ../repos/project1.git
执行效果可以看到是从之前的repos文件夹中cloneproject1

image.png

然后执行echo "project1" > project-infos.txt
生成了一个文件

image.png

然后我们就提交代码到仓库了,只不过这个关联的仓库不像我们日常开发中的公司的gitlab而是本地的一个仓库
我们就不像原文中那样敲命令行,我们使用Sourcetree
已经提交成功

image.png

三、重复工作,切换到submd/ws
我们处理proj2
git clone ../repos/project2.git
cd project2
echo "project2" > project-infos.txt

image.png

然后我们提交

image.png

四、类似 的执行

 git clone ../repos/lib1.git
cd lib1
 echo "I'm lib1." > lib1-features
cd ../
git clone ../repos/lib2.git
cd lib2
decho "I'm lib2." > lib2-features

最后的效果

image.png
image.png

最近的效果是这样的

image.png

操作了这么多实际 上看起来有点复杂,其实也就是创建了四个仓库,而这四个仓库关联的是本地的repos里的四个仓库

四、为project1添加lib1和lib2
老实说,我看到了这个

image.png

算了,还是先跟着原文走一下吧,懂了原理再来操作Sourcetree
切换到目录project1
cd ../project1
然后
git submodule add ~/submd/repos/lib1.git libs/lib1
然后文件夹变了,多了两个东西

image.png

再执行git submodule add ~/submd/repos/lib2.git libs/lib2

image.png

可以看到此时仓库有三处变更

image.png

至少貌似就差提交,就完成了子模块的添加 ,接下来我再从Sourcetree上来添加试试
这里我直接重置刚才用命令提交的子模块,为了明晚接着练习,我得备份一下,这里

image.png

并且我们还得存下.gitmodules里的的内容,可参考 里面,关于路径 的写法

image.png

然后我们直接右键 添加子模块

image.png

这里我们选择这个资源路径,很奇怪这里居然是个省字,看来Sourcetree的汉字没处理好啊

image.png

接着我们来添加这个本地路径 ,手动新建好两个目录

image.png
image.png

接着来lib2
创建文件夹


image.png

加入子模块


image.png

可以看到现在的效果和用命令行的效果是一样的
image.png

对比之前用命令行创建的.gitsubmoduel文件内容发现,是一样的

image.png

原文已看到,### 2.3 修改Submodule

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 212,222评论 6 493
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 90,455评论 3 385
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 157,720评论 0 348
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 56,568评论 1 284
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 65,696评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 49,879评论 1 290
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,028评论 3 409
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 37,773评论 0 268
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,220评论 1 303
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 36,550评论 2 327
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 38,697评论 1 341
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,360评论 4 332
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,002评论 3 315
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 30,782评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,010评论 1 266
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 46,433评论 2 360
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 43,587评论 2 350

推荐阅读更多精彩内容

  • 本片内容转自CSDN http://blog.csdn.net/ithomer/article/details/7...
    五娃儿阅读 4,921评论 2 88
  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,633评论 18 139
  • 开发中我们经常会遇到这样的情况:项目越来越大,一些通用的模块我们希望将他抽离出来作为单独的项目,以便其他项目也可以...
    feil0n9wan9阅读 19,919评论 0 24
  • 本文作者陈云峰,转载请注明。 这篇文章记录个人常用的一些命令,和记不住的一些命令,转载了并不断更新。 Git官网 ...
    陳云峰阅读 2,808评论 0 24
  • 总会有那么一瞬间, 突然觉得生活好累, 压得人喘不过气... 总会有那么一个时刻, 说不上有什么烦心事, 却会莫名...
    54谭小姐阅读 255评论 0 3