使用Git同步更新hexo本地文件到远程服务器

这个小博客在本地使用HEXO生成的,没有用HEXO自带的同步方式,而是将本地HEXO生成好的静态文件public同步到Linux服务器,然后用nginx作为web服务挂在服务器上。同步的方式很多,网上也有各种姿势实现。这里使用Git让自己熟悉熟悉Git的一些基本使用命令,以免以后想用一时半会儿又想不起来。

关于HEXO部署本地电脑上以及Linux服务器nginx安装建站就不说了,有很多教程文章。

>>>这里的HEXO博客是自己另外一个HEXO静态网站blog.zerooo.net 本地完成文章后使用Git更新网站。本vvplus.net采用Python自动发布markdown文章到WordPress网站  都是本地操作发布新文章。

Git添加本地仓库

本地使用hexo g 生成好静态文件以后,进入public文件夹,在这里创建一个本地仓库,将来和远程的仓库关联以便随时同步。这时在public文件夹下就有一个.git文件夹。

git init .

Git添加远程仓库

要本地同步到远程仓库,首先得在服务器上创建一个Git空白仓库,这里提示最好新建一个用户比如giter用来管理,在giter目录下新建文件夹比如hexo_blog.git 这个文件夹用来存放远程仓库。进入文件夹创建仓库

git init --bare /home/giter/hexo_blog.git

Git本地关联远程仓库

在本地刚才的public目录下操作,hexo_blog是添加的远程名字默认是origin这个可以自己定义ssh://后面的是远程url

:xxx 是ssh端口,比如你ssh端口是2019那么url就应该是 ,如果使用的默认22端口就不要:2019直接接git仓库地址目录git remote add hexoblog ssh://giter@1.2.3.4:2019/home/gittt/blogzerooo.git

git remote add hexo_blog ssh://giter@1.2.3.4:xxx/home/gittt/blog_zerooo.git

可使用 git remote -v 查看远程仓库信息。

Git测试

因为远程仓库是空的,现在需要添加文件然后同步到远程。-u将远程仓库和本地仓库关联起来,如果前面添加远程url无误此时已将本地文件同步到远程了。

git add .
git commit -m "这里添加本次同步的些备注可自己看着办"
git push -u hexo_blog master


登录远程服务器,因为我们远程是一个裸仓库,同步完文件后在文件夹里是看不到的,这里使用clone命令克隆到另一个文件夹里比如你的网站目录就可以看到了。

git clone /home/gittt/blog_zerooo.git

Git自动部署

当然在本地更新一篇文章需要用到一系列包括HEXO、Git、bash在内的一些命令,同时同步到远程仓库再到发布到指定的网站目录下也需要一些Git自动化命令。接下来要做的就是让着一系列命令串联起来,当自己写好一篇文章之后只需要在命令行敲一个命令,网站就同步更新的实现。

首先,假如我们在一个markdown编辑器下完成一篇文章之后,我们需要将文章复制到本地HEXO网站下的source/_posts/目录下,然后执行hexo g 命令才会渲染。当渲染完毕后成型的静态文件都在public目录下,接下来就是Git同步到远程的一些命令如上一步所述。

文件同步到服务器之后需要clone到指定的网站目录里这里需要用到Git自动部署的一个hooks,编辑/home/gittt/blog_zerooo.git目录下的hooks下的post-receive文件,每当我们本地同步更新到远程仓库这个动作执行后,Git会自动执行post-receive这个脚本里面的命令,以此我们来实现自动部署。

本地脚本就是复制文章到_posts目录>>>hexo渲染静态文件>>>Git同步本地到远程仓库
服务器post-receive脚本自动clone>>>静态文件同步到指定网站目录

具体脚本就不贴了,都是一些基本命令的顺序执行就好,注意的是post-receive里面的脚本前需要加上unset GIT_DIR 之后才是clone和同步。post-receive要给执行权限,用户以及用户组要改为giter。

另外每次Git同步需要giter这个用户登录服务器,最好使用ssh-keygen这种方式自动登录,免去每次输入密码的麻烦才真实现自动。

你也可能喜欢

发表评论

您的电子邮件地址不会被公开。 必填项已用 * 标注

提示:点击验证后方可评论!

插入图片

标签云

使用Git同步更新hexo本地文件到远程服务器

长按储存图像,分享给朋友

微信扫一扫

微信扫一扫