以 root 用户的身份登录服务器,执行以下命令:
- 安装相关依赖(Optional)
1 | apt install git nginx -y |
- 创建文件路径并修改权限
1 | mkdir /opt/hexo |
- 创建 Git 仓库
1 | cd /opt/hexo |
- 配置 Nginx 托管文件目录
1 | mkdir /var/www/hexo |
- 配置 Git-hooks
1 | vim /opt/hexo/blog.git/hooks/post-receive |
在本机的博客 Git 仓库内,执行以下操作:
- 编辑站点配置文件
_config.yml
,修改 Deployment 配置
1 | # Original |
- 打开 Git Bash 终端,执行以下命令尝试部署:
1 | hexo clean |
补充:什么是 Git-hooks ?
git hooks
是 Git 提供的一个特性,允许脚本在某些 Git 操作的关键点被自动执行。这些钩子都被存储在 Git 仓库的 .git/hooks
目录下。当你用 git init
初始化一个新的仓库时,Git 会默认为这个仓库设置一些示例钩子。
每个钩子都是一个脚本,可以是 Bash 脚本、Python 脚本、Ruby 脚本等。默认情况下,示例钩子都是不会执行的,除非你修改它们并去掉.sample
的后缀。
以下是一些常见的 git hooks
以及它们的使用场景:
- pre-commit:在提交之前运行。它用于检查即将提交的快照,例如,检查代码风格、运行单元测试、检查lint错误等。如果这个脚本退出时返回非零值,Git 将放弃此次提交。
- prepare-commit-msg:在提交消息编辑器打开前运行。可以用于格式化提交消息,或者根据提交的内容和提交者等因素设置默认的提交消息。
- commit-msg:在提交时检查提交消息。可以用来确保提交信息遵循特定的模板。
- post-commit:在提交完成后运行。通常用于通知或其它不影响提交本身的操作。
- pre-push:在
git push
命令上传到远程之前。可以用来运行测试,确保不会把有问题的代码推送到主分支。 - post-receive:在远程仓库中,当推送完成后执行。通常用于部署任务或向其他服务发出通知。
这只是钩子的一部分,Git 提供了很多其他类型的钩子。
总之,git hooks 提供了一种强大的机制,使开发者可以在各种Git操作过程中自动运行脚本,从而帮助团队遵循代码质量标准、运行自动化任务、增强开发流程等。
回答来自 GPT-4