git submodule 的使用

在 Git 项目中,需要包含别的 Git 项目,我们希望能够独立的使用这两个项目。比如我们的博客是一个 Git 项目,而我们需要在博客中包含别人的项目作为博客主题,我们希望能够在自己写博文后 push 不影响博客主题仓库,同时希望能够独立使用主题仓库,这样我们就可以获取最新的主题。 这个时候需要用到 git submodule。在使用 submodule 之后,两个项目便相对独立(或者多个 submodule,那么就是多个项目相对独立)。下面介绍子模块常用的用法: 使用子模块 添加子模块 在 Git 项目中包含别的 Git 项目,不能够直接到相应文件夹 clone,而需要使用 git add submodule 命令,可以将这个命令视为子模块版本的 git clone。 git add submodule [email protected]/example/example.git submodule 上面的命令将项目克隆到 submodule 目录。会发现根目录生成了一个 .gitmodule 文件,这个文件用于保存子模块信息。 查看子模块 使用 git submodule 命令查看当前项目的子模块。 更新子模块 在项目中使用 git update 父模块并不会更新子模块。(别的操作同理,我们在项目中使用的各种以前使用的 git 操作都只会对父模块产生作用) 使用 git submodule add 添加子项目。 操作子模块 在子模块的文件夹内部,我们的各种操作都是对子模块的项目产生作用,比如 push 就是将子模块 push 到子模块的 remote repository。 所以需要单独修改子模块,只需要 cd 到子模块内,把子模块当成一个普通的 git 项目即可。 克隆含有子模块的项目 克隆包含子模块的项目有两种方法:...

May 31, 2021

使用 Github actions 自动发布 Hugo 博客

使用 hugo 写博客的时候,每次增加文章,需要本地构建之后发布到 github 上通过 github pages 服务展示页面,不难想到可以使用 CI 的方法,将构建的过程自动化,实现写博文 push 到 github 即可自动构建并发布到 github pages。 搞的过程中坑比较多,记录为一个教程,供各位参考。 我折腾过程中的参考:https://tianhui.xin/blog/2019/11/17/hugousegithubactionstopages/ 创建代码仓库和 github pages 仓库 构建过程中采用两个仓库: 代码仓库,github pages 在这里构建并发布,我们设为 username.github.io.source github pages 仓库,用于存放构建好的文件,github pages 服务会根据构建好的文件展示我们的博。客,我们设为 username.github.io (username 改为你自己的 github username) 简单说来就是根据代码仓库的文件构建,构建好之后发布到 github pages 仓库,github pages 仓库由于有 github 提供的服务,会自动展示我们的 blog。 创建 github pages 仓库 没啥特别,github 上创建一个空仓库 username.github.io 创建代码仓库 这个仓库和我们本地直接关联,创建有一些细节需要注意,我下面的过程给各位参考: github 创建空仓库 username.github.io.source 本地找个空文件夹,比如叫 HugoBlog,进去之后初始化 Hugo Blog:hugo new site . 初始化 git 仓库:git init 添加主题文件,这步需要注意,需要使用 git submodule 来进行(照着做就完了,不需要深入了解),比如我这边采用的主题文件为 joway/hugo-theme-yinyang,那么命令为:git submodule add git@github....

May 31, 2021