**摘要:**早该记录了,最开始我的blog是使用hexo+github搭建的使用jacman主题,也是因为对git不够了解,当时绑定域名是使用直接在github上写CNAME文件。感觉太麻烦了,就买了空间换了WordPress,wp也是用了要有快一年,然后感觉markdown支持的真是不好,而且迁移很不爽,然后就换了现在的。关于现在这套blog架构,依然使用hexo作为blog框架,我自己的电脑用作服务器,然后VPS作为web服务器提供发布,使用git hook进行更新blog。
git钩子简介 –摘自git-scm
Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。 你可以随心所欲地运用这些钩子。
git hook概述
钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。 当你用 git init 初始化一个新版本库时,Git 默认会在这个目录中放置一些示例脚本。这些脚本除了本身可以被调用外,它们还透露了被触发时所传入的参数。 所有的示例都是 shell 脚本,其中一些还混杂了 Perl 代码,不过,任何正确命名的可执行脚本都可以正常使用 —— 你可以用 Ruby 或 Python,或其它语言编写它们。 这些示例的名字都是以 .sample 结尾,如果你想启用它们,得先移除这个后缀。把一个正确命名且可执行的文件放入 Git 目录下的 hooks 子目录中,即可激活该钩子脚本。 这样一来,它就能被 Git 调用。Git Hooks 就是一些触发特定事件的脚本。比如 commit、push、merge 等等,也区分本地 Hooks 和服务端 Hooks。
使用post-reveive
当用户在本地仓库执行git-push命令时,服务器上远程仓库就会对应执行git-receive-pack命令,而git-receive-pack命令会调用pre-receive钩子。使用git部署时的流程:本地git-push –> VPS上Git服务器更新并Hook –>VPS上执行pre-receive脚本,同步到服务器本地仓库目录
git部署blog过程记录
VPS安装git
- 安装初始化
|
|
创建信任
- 创建从我本机到VPS上git-blog用户的信任
|
|
本地配置git发布
- Hexo主配置文件_config.yml如下
|
|
服务器配置git hook
- 编辑blog.git/hooks下新建post-receive文件,内容如下
|
|
发布
- 本地操作
|
|
- 参考文档 swiftyper的blog imys的blog
- 之前关于hexo的文章 linux下hexo配置 hexo简明 使用Hexo和Github搭建Blog
ok,以上,以后还会补充git的东西