这次不造轮子,写写文章。

file

最近想把自己的 blog 整理到 github 上,但由于其中依赖了一些主题以及插件,这时候 git submodule 就能很好的处理这种情况了。

submodule 是什么?

submodule 顾名思义,子模块。在一个项目依赖其他 git 上的模块时就很有用处了。

以我自己这次修改做例子:
我的 typecho 博客 依赖了 主题 typecho_material_theme 和 插件 Links_for_Material_Theme

那写下来就写写整个过程。

冻手不?冻手

file

准备

  • 已有一个 typecho 项目,可以从 github 上 fork 一个 github.com/typecho/typ…
  • 对应的一个 github 仓库,如 github.com/HanSon/my-b…
  • 记得把 .gitignore 中的 /usr/theme/usr/plugins 相关路径去掉(在最底部的4行)

动手

开始增加子模块(最后为路径)

cd typecho
git submodule add git@github.com:HanSon/typecho_material_theme.git usr/theme/typecho_material_theme
git submodule add git@github.com:HanSon/Links_for_Material_Theme.git usr/theme/Links复制代码

这时候应该能看到开始对两个库 clone 中,查看一下 git status , 应该能看到修改的有多了两个库,以及 .gitmodules 的修改

git status复制代码

然后我们来提交到 github 中

git commit -am "增加子模块"
git push origin master复制代码

这时就已经成功提交到 github 上了,我们来看看 github 上是如何显示 submodule 的

file

可以看到多了两个不一样的图标,点击自动跳转去该仓库的地址(@ 后面代表的是 commit id)

来 pull

git clone https://github.com/HanSon/my-blog.git
cd my-blog复制代码

pull 完发现只剩下文件夹,submodule 并没有内容,需要先初始化 submodule 并且 update

git submodule init
git submodule update复制代码

这时候就发现 submodule 的内容已经 pull 下来了!

如果更新了 submodule , project 应该如何跟着更新?

  • 按需更新。 去到相对应的 submodule 目录执行 git pull origin master 即可。

  • 简单粗暴,全部更新。git submodule foreach git pull origin master

这次给我的博客加上了播放哈林摇的功能 hanc.cc

file

你还可以把上图的 Let's party 拖到书签栏,然后访问你想要摇的网站,点击刚保存的书签进行摇一下。

file

PS:上面所述为实操后凭记忆记下来的,如有遗漏欢迎补充

file

转载于:https://juejin.im/post/58f06fd00ce463006b9f1e0a

Git submodule 的笔记相关推荐

  1. npm install mysql 报错_npm遇到的问题--npm install 执行报错 /bin/git submodule update -q --init --recursive...

    1.执行npm i 安装依赖时,报错:cannot read property 'match' of undefined 据说是npm本地缓存导致 解决方案: rm -rf package-lock. ...

  2. git submodule 使用场景汇总

    文章目录 1. 前言 2. 基础命令介绍 2.1 场景一:已有仓库,添加一个子模块 2.2 场景二:已有仓库,添加一个子模块的特定分支 2.3 场景三:已有仓库,更新子模块内容 2.4 场景四:已有仓 ...

  3. 《Got Git》学习笔记(一)

    <Got Git>学习笔记(一) 最近想对自己的代码和文档进行归档整理,需要一个版本控制系统来进行 处理.自然而然的想到了目前流行的GitHub. GitHub,是一个面向开源及私有软件项 ...

  4. git submodule 删除及更新URL

    git submodule 删除及更新URL 转载 2016年03月08日 10:27:21 删除一个submodule 1.删除 .gitsubmodule中对应submodule的条目 2.删除 ...

  5. git submodule获取子模块

    从github上获取工程,经常会出现依赖其它github上代码的情况,这时如果每一个都手动下载,实在太麻烦了.其实git给我们提供了相互引用的功能,可以在工程中直接引入其它的代码库,这样可以保证每次使 ...

  6. 使用git submodule

    git submodule 引用 $ git help submodule $ git submodule add https://github.com/aditya-grover/node2vec. ...

  7. GitNote 基于 Git 的跨平台笔记软件正式发布

    GitNote 基于 Git 的跨平台笔记软件 为什么 自从工作之后,我开始进行笔记记录,这是一个很棒的习惯.我曾经使用过 EDiary Evernote Onenote Wiz 麦库等,都是一些不错 ...

  8. Git Submodule管理项目子模块

    使用场景 当项目越来越庞大之后,不可避免的要拆分成多个子模块,我们希望各个子模块有独立的版本管理,并且由专门的人去维护,这时候我们就要用到git的submodule功能. 常用命令 git clone ...

  9. git submodule 的使用

    转自:http://webfrogs.me/2013/03/20/git-submodule/ 开发过程中,经常会有一些通用的部分希望抽取出来做成一个公共库来提供给别的工程来使用,而公共代码库的版本管 ...

最新文章

  1. mysql8.0取消授权_mysql8创建用户、删除用户、授权、取消授权
  2. 性能测试知多少--系统计数器与硬件分析
  3. 《数据库系统实训》实验报告——视图
  4. 1.PostgreSQL的学习
  5. Mysql 死锁过程及案例详解之显式与隐式锁Explicit Table Lock Implicit Table Lock
  6. Linux有问必答:怎么用CheckInstall从源码创建一个RPM或DEB包
  7. windows10大瘦身 - 关闭lync的日志记录
  8. [蓝桥杯][2014年第五届真题]生物芯片(数论)
  9. python文本替换 数据库_用几行python代码实现大量文本文件里的文本替换
  10. SpringMVC详解(四)------SSM三大框架整合之登录功能实现
  11. (转)以太坊的 Merkle 树
  12. esxi能直通的显卡型号_显卡参数看不懂?手把手教你选独立显卡
  13. 【没有刀剑,如何行走江湖】半晌私语(上)
  14. Spring Cloud Loadbalancer
  15. 精准面试突击55:delete、drop、truncate有什么区别?
  16. 移动端处理输入法表情
  17. 香叶是什么,怎么用?
  18. 用exec()函数执行新程序
  19. 笃行致远 砥砺前行 华云数据西南区域公司正式乔迁
  20. 【专题5: 硬件设计】 之 【69.开关电源 之 如何计算buck电路占空比和电感的计算】

热门文章

  1. python去掉字符串最外侧的引号_疯狂Python讲义第二章读书笔记
  2. localdatetime转化为date_LocalDateTime用法(jdk1.8 )
  3. 104. 二叉树的最大深度 golang DFS
  4. ySQL挑战搭建一个简易的成绩管理系统的数据库
  5. gcc编译缺少数学库
  6. 【Linux系统编程学习】 文件描述符
  7. shell编程题(三)
  8. mmap和munmap对文件进行操作(读写等)
  9. Hibernate学习笔记(一)
  10. SpringBoot与数据访问