一.简介
只要认真观察的同学发现,当我们执行hexo d
命令发布博客到github后,其博客仓库的文件和我们本地发布的目录的不一样.
- 本地能执行
hexo d
命令的是hexo博客源码,用于根据xxx.md文件生成站点文件以便发布用的. - 执行命令
hexo d
后上传到github的是网页显示需要的站点文件.
我们在上篇文章 网站原型搭建 中,
yanxiangyfg.github.io这个仓库的master分支保持的就是站点文件。 为了在一个仓库中保存博客源码文件和站点文件,我们采用创建不同分支来管理的方式。
只有关联了这这类文件,后续才好在不同地方不同机器上更新博客,也减少了不必要的麻烦。
二.用公共仓库管理代码
由于在上篇文章中只是搭建了博客原型,没有实质的内容,为了后续更好的管理两类文件,这里需要删除之前建立的yanxiangyfg.github.io
仓库,重新建立一个新的同名仓库.
1. 将仓库克隆到本地
1 | $ git clone https://github.com/yanxiangyfg/yanxiangyfg.github.io.git |
2. 创建hexo分支用于管理博客源码
1 | $ cd yanxiangyfg.github.io/ |
3. 在hexo分支下创建站点
1 | $ hexo init hexo |
4. 安装主题并通过git子模块来管理主题
1 | $ cd ../ |
5. 将hexo源码与主题提交到GitHub仓库
1 | $ git add . |
经过了上述几个步骤后, hexo博客源码文件就保存到了yanxiangyfg.github.io这个仓库的hexo分支.
接下来需要发布站点文件到master分支了,即保存站点文件到master分支.
6. 保存站点分支即:部署
- 1> 安装hexo-deployer-git
1
npm install hexo-deployer-git --save
- 2> 修改配置_config.yml
1
2
3
4deploy:
type: git
repo: https://github.com/yanxiangyfg/yanxiangyfg.github.io.git
branch: master - 3> 部署:上述配置好后只需执行
hexo g -d
即可生成静态文件并上传到yanxiangyfg.github.io仓库的master分支上
当然如果为了让hexo博客源码文件私密,就可以单独建立一个私有仓库保存即可。这里讲解的是为了方便所采用的方法。
三、管理next主题代码
后续肯定需要配置和优化next主题的,这样就会改动next这个第三方的仓库。
因为其远程仓库是第三方的,我们无法直接把改动推送到第三方远程库,所以我们需要在github上创建一个仓库,将改动后的next theme源码存放到自己的github中。
github 提交第三方模块流程如下:
- 在github中新建一个仓库存放next代码,比如仓库名字叫: MyBlog_next_theme
- 进入到本地的next仓库目录,将代码与上面创建的远程仓库关联:
1
2
3
4git remote rm origin
git remote add origin https://github.com/yanxiangyfg/MyBlog_next_theme.git
#第一次关联远程仓库的时候需要执行此命令,后续直接git push即可。
git push --set-upstream origin master - 进入到
yanxiangyfg.github.io
根目录,更新远程仓库submodule记录:修改.gitmodule 和 .git/config中next远程仓库的url地址, 然后执行如下命令实现更新1
2
3
4
5git submodule sync
git add .
git commit -m "fresh next theme submodule url"
git push - 经过上述步骤后,子仓库就更新了,下次下载代码时执行
git submodule update --init
就可以将私有仓库记录的next源码下载下来,后续next配置的改动也可以上次到这个仓库。