写的比较简略,适合熟悉git的朋友参考。由于自己比较菜可能有说的准确的地方,希望朋友们可以结合相关文档操作
- 在
hugo new site
之后cd
到博客的根目录
- 添加
hugo new
生成一篇文章执行hugo
生成静态网站到public目录,如果你要用自己的域名别忘了在public目录下加上名为CNAME
的文件,里面写自己网站的域名比如本站blog.sunjinhui.top
,将master分支push到远程仓库
- 复制public目录下的内容
git checkout -b gh-pages
将public目录下的内容复制至此git commit
一下 ,git push
将此分支到remote仓库
git checkout master
执行下面的命令,确保工作目录下没有修改的内容
1
|
git subtree add --prefix=public origin gh-pages --squash
|
目的是将gh-pages分支下的内容放至public目录下
- 与远程仓库同步
1
|
git subtree pull --prefix=public origin gh-pages
|
- 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
|
- 部署脚本
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
|