Hexo提交源文件,部署博客

保存文章,发布博客
发布博客更新总结
提交源文件 & 部署站点
在新电脑上修改

hexo搭建博客发布到个人服务器架构流程图
image
说明:我本人没有使用缓存tmp
image

保存文章,发布博客

执行清除命令,发布博客,可行。 clean适用于主题样式发生较大改动

1
2
更新文章
hexo clean && hexo d [-g]

不执行清除命令,发布博客,可行

1
2
更新文章
hexo d -g

不执行清除命令,发布博客,不可行

1
2
3
更新文章
hexo s -g
hexo d

发布博客更新总结

  • 与预览hexo s [-g]无关系

  • git push,发布博客,不可行,
    因为仅仅提交更新源码md文件

    1
    2
    3
    git add .
    git commit
    git push
  • 重点说明:仅仅修改文章,不涉及主题修改的,可以不执行clean命令

  • 是否生成html新文件

    1
    2
    3
    hexo s -g: 否
    hexo d -g: 是
    hexo g: 是
    命令 是否生成html新文件
    hexo s -g
    hexo d -g
    hexo g

g/-g参数意义

原来没认真研究横线-意义,总以为都会在本地生成新的html文件
经过多次不同命令发布尝试后,才知道横线-g相当于在内存生成html,所以在发布部署时,必须生成本地的html文件。

1
s -g是内存生成html,g || d -g是文件生成html,所以在部署时,生成新html上传,使用哪种参数,至关重要!

提交源文件 & 部署站点

提交源文件(git push): 触发的是master分支(源文件),触发钩子;但博客文件(静态文件public/)未发生上传新文件
部署站点(hexo deploy): 触发的是blog分支(静态文件),触发钩子;但博客文件(静态文件public/)上传新文件
操作示例:

1
2
3
4
5
6
7
8
9
10
11
➜  shendawei git:(master) git push
Counting objects: 20, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (19/19), done.
Writing objects: 100% (20/20), 20.34 KiB | 0 bytes/s, done.
Total 20 (delta 3), reused 0 (delta 0)
remote: start hook.
remote: Already on 'blog'
remote: end hook.
To shendawei.cn:/home/git/repos/Doc.git
75bba7a..9c8dc7f master -> master
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
➜  shendawei git:(master) ✗ hexo d -g
INFO Start processing
WARN ===============================================================
WARN ========================= ATTENTION! ==========================
WARN ===============================================================
WARN NexT repository is moving here: https://github.com/theme-next
WARN ===============================================================
WARN It's rebase to v6.0.0 and future maintenance will resume there
WARN ===============================================================
INFO Files loaded in 689 ms
INFO Generated: 2020/03/31/Hexo提交源文件,部署博客/index.html
INFO Generated: index.html
INFO 2 files generated in 936 ms
INFO Deploying: git
INFO Clearing .deploy_git folder...
INFO Copying files from public folder...
INFO Copying files from extend dirs...
[master 7fd6702] Site updated: 2020-03-31 21:41:54
2 files changed, 4 insertions(+), 4 deletions(-)
Counting objects: 8, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (8/8), 611 bytes | 0 bytes/s, done.
Total 8 (delta 4), reused 0 (delta 0)
remote: start hook.
remote: Already on 'blog'
remote: end hook.
To shendawei.cn:/home/git/repos/Doc.git
8243221..7fd6702 HEAD -> blog
Branch master set up to track remote branch blog from git@shendawei.cn:/home/git/repos/Doc.git.
INFO Deploy done: git

总结

1
2
3
站点博客要更新,只能调用部署的方法。  
部署的前提:主题样式未修改,直接hexo d -g;主题样式修改, hexo clean && hexo d -g.
简而言之,只编辑文章内容时,部署站点博客,执行hexo d -g;提交源文件时,执行git commit, git push.

在新电脑上修改

不需要hexo init,不需要git init

编写文章

  1. 下载仓库

    1
    2
    git clone git@shendawei.cn:/home/git/repos/Doc.git -b master shendawei
    cd shendawei
  2. 初始化submodule next

    1
    git submodule init
  3. 下载submodule next

    1
    git submodule update
  4. 下载npm包

    1
    2
    npm install
    因为package.json已经配置过hexo&hexo-deploy-git,不用单独install --save.
  5. 编写文章

    1
    2
    hexo new 新文章
    编写新文章/修改已有文章
  6. 预览效果/部署博客

    1
    2
    hexo s -g / hexo d -g
    修改主题式样时,才需hexo clean
  7. 提交文章

    1
    2
    3
    git add .
    git commit -s -m "message"
    git push

修改主题

  1. cd主题目录(themes/next/)

    1
    2
    3
    cd themes/next
    git submodule update下载的next,分支可能处于游离状态,需先切换到master
    git checkout master
  2. 修改主题文件代码

    1
    优化主题式样文件
  3. 提交主题changes

    1
    2
    3
    git add .
    git commit -s -m "更新主题"
    git push
  4. 返回根目录,提交submodule commit id变化

    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    cd ../..
    ➜ shendawei git:(master) ✗ git status
    On branch master
    Your branch is up-to-date with 'origin/master'.
    Changes to be committed:
    (use "git reset HEAD <file>..." to unstage)

    modified: themes/next
    git add .
    git commit -s -m "Update submodule: next"
    git push

参考文章

Hexo 建站教程