写的比较简略,适合熟悉git的朋友参考。由于自己比较菜可能有说的准确的地方,希望朋友们可以结合相关文档操作

  1. hugo new site之后cd到博客的根目录
  2. 添加hugo new生成一篇文章执行hugo生成静态网站到public目录,如果你要用自己的域名别忘了在public目录下加上名为CNAME的文件,里面写自己网站的域名比如本站blog.sunjinhui.top,将master分支push到远程仓库
  3. 复制public目录下的内容git checkout -b gh-pages将public目录下的内容复制至此git commit一下 ,git push将此分支到remote仓库
  4. git checkout master 执行下面的命令,确保工作目录下没有修改的内容
1
  git subtree add --prefix=public origin gh-pages --squash

目的是将gh-pages分支下的内容放至public目录下

  1. 与远程仓库同步
1
git subtree pull --prefix=public   origin gh-pages
  1. push subtree
1
git subtree push --prefix=public origin gh-pages

如果push遇到问题,这里是强制push的方法

1
 git push origin `git subtree split --prefix=public origin gh-pages`:gh-pages  --force
  1. 部署脚本deploy.sh,将此脚本文件放在根目录下当有新写的文章的时候./deploy.sh执行此脚本即刻完成自动部署到github

注意,设置自己的remote

1
    git remote add origin {远程仓库地址}
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
#!/bin/bash

echo -e "\033[0;32mDeploying updates to GitHub...\033[0m"

# Build the project.
hugo

# Add changes to git.
git add -A

# Commit changes.
msg="rebuilding site `date`"
if [ $# -eq 1 ]
  then msg="$1"
fi
git commit -m "$msg"

# Push source and build repos.
git push  origin master
git subtree push --prefix=public origin gh-pages
git subtree pull --prefix=public origin gh-pages