hugo部署到coding&备份源码
本地操作
安装GIt
本地需要安装 Git ,安装过程略。安装完git后还要配置环境变量:
右键我的电脑 –> 属性,然后点击高级系统设置 –> 环境变量 –> 选择用户变量或系统变量中的Path,点击编辑;找到Git安装目录,添加以下地址:
1 | D:\Program Files\Git\bin |
配置SSH 公钥
Windows 上安装 Git for Windows 之后在开始菜单里打开 Git Bash 输入:
1 | git config --global user.name "你的用户名" |
1 | cd ~ |
在系统当前用户文件夹下生成了私钥 id_rsa
和公钥 id_rsa.pub
。
初始化 Hugo
安装hugo
windows10下安装hugo,可以参照Hugo官方手册的方法,这里讲一个相对简单稳定的方法。
1.下载hugo程序压缩包:前往https://github.com/gohugoio/hugo/releases下载和自己系统版本相符合的hugo程序压缩包。(建议下载hugo_extended版本)
2.解压到某个文件夹中(路径不要有中文,而且自己要记得文件夹的路径),最好是不常改动的文件夹下边,以防文件被误删或者丢失。
3.添加hugo到系统环境变量PATH中
- 找到“系统环境变量”的设置位置,在开始菜单的搜索栏搜索环境变量
- 添加用户环境变量,依此:点击环境变量,找到用户变量中的path,点击编辑,然后点击新建,在使用浏览按钮选中文件夹,即可使用hugo。(选中到hugo.exe所在的文件夹即可,不需要选中hugo.exe,貌似添加完系统变量,要重启电脑才能在Git Bash里运行hugo)
- 接下来,为了万无一失,还是要检查一下hugo是否安装完成。以管理员方式打开cmd命令窗口,然后输入以下指令:
1 | hugo version |
如果得到如下响应,(即显示版本信息),说明安装成功,接下来就可以玩转hugo了。
1 | Hugo Static Site Generator v0.70.0/extended windows/amd64 BuildDate: unknown |
创建并配置站点
以下命令均在’Git Bash’中运行
进入你想存放 Hugo 网站文件夹的目录,执行以下命令:
1 | hugo new site blog |
添加主题
1 | git clone https://github.com/dillonzq/LoveIt.git themes/LoveIt |
附更新主题命令:
1 | cd ./themes/LoveIt/ |
配置主题
将 根目录\themes\even\exampleSite路径下的config.toml文件复制到根目录下,覆盖掉根目录下的config.toml文件。然后,我们在notepad++中打开并对其作一定的修改就可以直接使用。
配置config.toml
略
设置文章模板
为了更好的使用附加功能,我们提前修改一下模板。这样,每次使用新建一篇文档时候就省去很多麻烦事。
使用Typora文档工具打开themes/tranquilpeak/archetypes中的post.md直接替换为以下的模板:
1 |
|
接下来在根目录下使用以下命令生成一篇文档吧:
1 | hugo new post/XXXX.md |
新建“关于”页面
1 | hugo new about.md |
config.toml
相应位置添加:
1 | [[menu.main]] |
启动博客的本地预览
建议在配置文件中设置好主题,或者使用 –t指令指定主题,在站点的根目录下使用命令进行本地启动,本地启动的命令如下:
1 | hugo server -D |
使用浏览器打开 http://localhost:1313 预览。
部署到coding
略
提交本地仓库
1 | rm -rf public/* |
备份脚本
为了后续更新方便起见,可以在根目录新建一个一键部署脚本,命名为deploy.sh
(如果对配置不做大的改动(例如:更换主题等),后续的更新可以使用以下脚本)
1 |
|
创建完脚本以后,不要忘了加权限
1 | chmod 777 xxx |
提交本地仓库
1 | rm -rf public/* |
备份hugo源码
1 | git remote rm origin |
备份hugo源码
PS: 如果执行第三步git checkout -b backup
后,提示fatal: A branch named 'backup' already exists.
,则执行以下操作:
1 | git branch -D backup #删除分支:必须切换到其他的分之下才可操作 |
备份到github master分支
1 | git remote rm origin |
PS:这里
Git Bash
开头会报错:warning: LF will be replaced by CRLF
,解决方法:在git add .
前面添加:
1 | git config --global core.autocrlf false |
最终效果:
1 | # backup |
在部署脚本里也要作相应修改。
还原源码
重装系统后,Algolia的自动提交索引功能要重新部署一遍,具体可查看:Hugo添加Algolia。最后还要在博客目录里重新关联远程仓库,还是一样先备份源码到github,再部署网页到相应服务器。
先备份源码,再部署网页,是为了GitInfo
以及lastmod
能够生效和更新,其实源码可以备份到github、gitee、coding中任意一个公开仓库都可以,当然备份到github最好。网页也无需和源码放在同一个代码托管平台上。
2022.3.4 如果使用Git Submodule
子模块管理Hugo主题,将源码克隆到本地,使用下面这条命令才能将主题一同克隆到本地。
1 | git clone -b develop git@github.com:iwyang/hugo.git hugo --recursive |
总结
最好不要反复切换部署仓库,否则git会出现以下错误提示:
1 | remote: error: The last gc run reported the following. Please correct the root cause |
查资料,原来是自己本地一些 “悬空对象”太多(git删除分支或者清空stash的时候,这些其实还没有真正删除,成为悬空对象,我们可以使用merge命令可以从中恢复一些文件)
解决方法:
1.输入命令:git fsck --lost-found
,可以看到好多“dangling commit”
2.清空他们:git gc --prune=now
,完成