0%

Hexo+github搭建个人博客(2):博客源码与站点文件管理

一.简介

只要认真观察的同学发现,当我们执行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
2
3
4
5
6
$ cd yanxiangyfg.github.io/
$ git checkout -b hexo
$ touch .gitignore
$ git add .gitignore
$ git commit -m “add .gitignore“
$ git push origin hexo

3. 在hexo分支下创建站点

1
2
3
$ hexo init hexo
$ cd hexo/
$ npm install

4. 安装主题并通过git子模块来管理主题

1
2
$ cd ../
$ git submodule add https://github.com/iissnan/hexo-theme-next.git hexo/themes/next

5. 将hexo源码与主题提交到GitHub仓库

1
2
3
$ git add .
$ git commit -m "add hexo source and next theme"
$ git push origin hexo

经过了上述几个步骤后, 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
    4
    deploy:
    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
    4
    git 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
    5
    git submodule sync
    git add .
    git commit -m "fresh next theme submodule url"
    git push

  • 经过上述步骤后,子仓库就更新了,下次下载代码时执行git submodule update --init就可以将私有仓库记录的next源码下载下来,后续next配置的改动也可以上次到这个仓库。
兄弟姐妹们,写文章费脑啊,求打赏点烟钱.