创建一个新的 git 钩子,用于自动部署 在 /var/repo/blog.git 下,有一个自动生成的 hooks 文件夹。我们需要在里边新建一个新的钩子文件 post-receive。...vim /var/repo/hexoBlog.git/hooks/post-receive post-receive 内容如下: #!.../bin/bash git --work-tree=/var/www/hexo --git-dir=/var/repo/blog.git checkout -f 增加post-receive 文件的写权限...deploy 推送到我们云服务上,IP就是我们云服务器的ip,可以指定端口,表示访问到是什么端口,不指定的话,就是默认的80 端口。...我们还差最后一步,才能在浏览器上访问。我们需要配置nginx 。至于下载nginx和 安装可以看这篇文章,这里就不说了。
还有一种更优雅地方式,那就是直接在服务器上搭建git仓库,hexo三连直接deploy上去(跟搭建在github pages上的方式一样)。 为什么要部署至服务器?...仓库,并配置git钩子,自动同步文件到网站目录 配置网站访问设置 本地git deploy设置 准备工作 2.本地生成ssh秘钥备用 git config --global user.name "GitHub...切换至 git 用户,创建 ~/.ssh 文件夹和 ~/.ssh/authorized_keys 文件 su gitmkdir ~/.sshvim ~/.ssh/authorized_keys 同样i...git 仓库 cd /var/repogit init --bare hexo.git 编辑一个 Git 钩子 vim /var/repo/hexo.git/hooks/post-receive .../repo/hexo.git/hooks/post-receivechmod +x /var/repo/hexo.git/hooks/post-receive 宝塔网站配置 创建一个网站 image.png
钩子 1.在之前创建的两个裸仓库中有有一个hooks文件夹,分别在其中创建名为post-receive的钩子文件: 命令如下: butterfly仓库: vim /var/repo/hexo_butterfly.git...-f next仓库: vim /var/repo/hexo_next.git/hooks/post-receive 在其中写入如下内容: #!...保存后退出 2.让两个文件变为可执行文件 命令如下: chmod +x /var/repo/hexo_butterfly.git/hooks/post-receive chmod +x /var/repo.../hexo_next.git/hooks/post-receive 至此服务器结构搭建完成。...: type: git repo: blog@server_ip:/var/repo/hexo_next.git branch: maste 然后执行Hexo命令“三步骤”,上传静态文件至Ubuntu
4.重启Nginx服务,使得改动生效 命令如下: sudo service nginx restart image.png 创建Git钩子 1.在之前创建的hexo_static裸仓库下有一个hooks...文件夹,在其中创建一个名为post-receive的钩子文件: 命令如下: vim /var/repo/hexo_static.git/hooks/post-receive 在其中写入如下内容: #!.../bin/bash git --work-tree=/var/www/hexo --git-dir=/var/repo/hexo_static.git checkout -f 保存后退出 2.让该文件变为可执行文件...命令如下: chmod +x /var/repo/hexo_static.git/hooks/post-receive Windows搭建客户端 首先安装git,这里不再过多赘述 使用命令ssh-keygen...编辑hexo的config.yml文件,在deploy处修改repo项: deploy: type: git repo: blog@server_ip:/var/repo/hexo_static.git
日常价对于学生党来说真心太贵,推荐在打折、活动时购买,很多时候首年和首月往往还是便宜的,续费就搞不起了,所以还是尽可能优惠的时候买长点吧。...创建 Git 钩子 Git 钩子(hooks)是在 Git 仓库中特定事件(certain points)触发后被调用的脚本。...服务端钩子就是你 push 之后的事情服务器要运行的脚步,有用推的步骤只有一个,所以钩子只有四个 pre-receive 接受之前 update 更新之前 post-update 更新之后 post-receive...接受之后 在 /home/git/blog.git/hooks 目录下新建 post-receive vim /home/git/blog.git/hooks/post-receive 写入以下文本...repo: github: git@github.com:xxxxxxx/xxxxxxx.github.io.git coding: git@e.coding.net:xxxxxxx
git钩子 和其它版本控制系统一样,Git能在特定的重要动作发生时触发自定义脚本。...如果你需要通过电子邮件接收由git format-patch产生的补丁,这些钩子也许用得上。 第一个运行的钩子是applypatch-msg。它接收单个参数:包含请求合并信息的临时文件的名字。...Git自带的pre-rebase钩子示例就是这么做的,不过它所做的一些假设可能与你的工作流程不匹配。...这个钩子也可以用来验证某些在Git控制之外的文件是否存在,这样你就能在工作区改变时,把这些文件复制进来。 pre-push钩子会在git push运行期间,更新了远程引用但尚未传送对象时被调用。...web目录 在本地版本库工作区里开发,然后使用git push指令推送到远程裸版本库,钩子会post-receive自动生效,将文件检出到--work-tree目录里,即代码一经提交就会自动同步到web
这一部分主要目的是在云服务器上创建个git仓库,本地文件就可以通过git上传到云服务器的仓库中,并使用git的post-receive钩子将文件提交到仓库的同时同步到指定目录。...操作如下: 安装git: yum install git 配置git用户 adduser git 修改用户权限: chmod 740 /etc/sudoers vi /etc/sudoers 按向下键在文件中找到字段...的仓库,并且新建一个post-receive文件,用来把提交到服务器仓库操作如下: su root cd /home/git git init --bare blog.git #在/home/git下创建新仓库...blog.git chown git:git -R blog.git #给予git用户权限 在 /home/hexo/blog.git 下,有一个自动生成的 hooks 文件夹,我们创建一个 post-receive...钩子,把提交到/home/git/blog.git仓库里的文件同步到/home/hexo中。
repo/[git@localhost repo]$ git init --bare hexo.git初始化空的 Git 版本库于 /home/git/repo/hexo.git/[git@localhost...repo]$ lshexo.git[git@localhost repo]$ cd hexo.git/[git@localhost hexo.git]$ lsbranches config description...HEAD hooks info objects refsgit@localhost hexo.git]$ cd#### 1.4 创建git私有仓库钩子[git@localhost ~]$ cd /home.../git/repo/hexo.git/[git@localhost hexo.git]$ vim hooks/post-receive[git@localhost hexo.git]$ cat hooks...=$repo\_path checkout -f[git@localhost hexo.git]$ chmod +x hooks/post-receive[git@localhost hexo.git]
检查权限,执行pre-receive钩子(在GitLab企业版中叫做Git钩子),执行你请求的动作 处理GitLab的post-receive动作,处理自定义的post-receive动作。...Git命令,它会把以下工作交由GitLab Shell进行处理: 1.调用GitLab Rails API 2.检查权限执行pre-receive钩子(在GitLab企业版中叫做Git钩子) 3.执行你请求的动作...4.处理GitLab的post-receive动作 5.处理自定义的post-receive动作 5、GitLab Workhorse GitLab Workhorse是一个敏捷的反向代理。...它会处理一些大的HTTP请求,比如文件上传、文件下载、Git push/pull和Git包下载。其它请求会反向代理到GitLab Rails应用,即反向代理给后端的unicorn。...push -u origin master Existing Git repository cd existing_repo git remote add origin http://git.linuxidc.com
我只需要在子模块的中央仓库中加入 post-receive 钩子,当子模块代码推送完成时,post-receive 钩子里的脚本就会自动被触发,帮助我们到上层提交该子模块的 commit id 。...最后,每一个子模块也都需要安装一个这样的 post-receive 钩子,且子模块经常需要新增,依赖关系也经常变动,维护成本高。.../git/app_android/react_native/node_modules 有了这两个文件,post-receive 钩子也就可以写得通用化:先获取该子模块的仓库名,然后根据这个文件找到在 working...这个 push 操作是由 framework 的 post-receive 钩子自动完成的。...由于模块和分支不断在新增,上面的这两个文件肯定是需要经常更新,新增模块也需要安装这个钩子。
配置 Nginx 托管博客文件目录。 配置远程仓库自动更新到博客文件目录的钩子。...2.3 创建 Git 钩子 接下来,在服务器上的裸仓库 hexo_static 创建一个钩子,在满足特定条件时将静态 HTML 文件传送到 Web 服务器的目录下,即 /var/www/hexo。...在自动生成的 hooks 目录下创建一个新的钩子文件: vim /var/repo/hexo_static.git/hooks/post-receive 在该文件中添加两行代码,指定 Git 的工作树...chmod +x /var/repo/hexo_static.git/hooks/post-receive 至此,服务端的配置基本结束。 3....然后,通过 Git 钩子,将 Hexo 生成的博客静态文件,快速地推送到 Web 服务的托管目录。
hexo.git 创建Git钩子 # vim /home/repo/hexo.git/hooks/post-receive 点击键盘“i”建进入编辑模式,然后通过方向键编辑,将以下代码复制进去 #!...chown -R git:git /home/repo/hexo.git/hooks/post-receive # chmod +x /home/repo/hexo.git/hooks/post-receive...: repo: git@域名或IP:/home/repo/hexo.git 如果Git配置失败,可以尝试使用root推送: repo: root@域名或IP:/home/repo/hexo.git 然后...git: # chown -R git:git /home/repo 然后再上传; 如果还是不行,建议使用root推送; 在hexo配置文件中修改: repo: root@域名或IP:/home/repo.../hexo.git 如果root无法推送,同样大概率也是因为文件所有者问题,将hexo仓库和git仓库的所有者修改为root即可 如何判断文件夹所有者是否正确呢?
我们将需要这个以便post-receive稍后在生产服务器上设置一个钩子。为了实现这一点,我们需要创建一个gitrepo 的“裸”克隆并将其复制到我们的其他服务器。...创建一个Post-Receive Hook来部署Hugo站点 现在,我们终于准备好创建我们的post-receive部署钩子脚本了。每当您将新内容推送到生产代码时,都会调用此脚本。...在hooks目录中创建并打开具有此名称的文件: nano post-receive 在文件的顶部,在指出这是一个bash脚本之后,我们将从定义一些变量开始。我们将设置GIT_REPO为裸存储库。...完成后保存并关闭文件。 我们现在要做的就是使脚本可执行,以便git在适当的时候调用它: chmod +x post-receive 我们的部署系统现已完成。我们来试试吧。...让我们开始测试我们的post-receive钩子脚本。这将允许我们使用我们的Web内容的初始副本填充我们的~/public_html目录。
ssh/authorized_keys 文件 # 切换git用户 su git # 创建.ssh文件夹 mkdir ~/.ssh # 创建并编辑authorized_keys文件 vim ~/.ssh/.../repo chown -R git:git /var/repo chmod -R 777 /var/repo 创建网站根目录 mkdir /www/wwwroot/hexo chown -R git:...编辑一个 Git 钩子 vim /var/repo/hexo.git/hooks/post-receive 按i进入编辑模式,添加下面的代码,然后保存退出 #!...:git /var/repo/hexo.git/hooks/post-receive chmod +x /var/repo/hexo.git/hooks/post-receive 5 宝塔网站配置 在宝塔面板中点击左侧栏网站..._config.yml,找到deploy,修改参考如下 deploy: type: git repo: git@服务器IP:/var/repo/hexo.git branch:
Git 钩子 和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。...第一个运行的钩子是 applypatch-msg 。 它接收单个参数:包含请求合并信息的临时文件的名字。 如果脚本返回非零值,Git 将放弃该补丁。...Git 自带的 pre-rebase 钩子示例就是这么做的,不过它所做的一些假设可能与你的工作流程不匹配。...你可以用它恢复 Git 无法跟踪的工作区数据,比如权限数据。 这个钩子也可以用来验证某些在 Git 控制之外的文件是否存在,这样你就能在工作区改变时,把这些文件复制进来。...post-receive post-receive 挂钩在整个过程完结以后运行,可以用来更新其他系统服务或者通知用户。 它接受与pre-receive 相同的标准输入数据。
,有完整的Git命令集,可以提交工作空间的代码和文件。...但是,如果你远程初始化的“裸”仓库,之后想看默认分支的工作空间具体项目文件怎么办? 很简单,配合git工具下的hook 裸仓库创建工作空间 “裸”仓库创建工作空间很简单,配合hook即可。...Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。 客户端钩子由诸如提交和合并这样的操作所调用,而服务器端钩子作用于诸如接收被推送的提交这样的联网操作。...简单地说,hook就是一些在Git特点动作时候,触发的事件。 具体可以查看:Git官方中文文档 post-receive 我们要在裸仓库内,看到用户提交的工作空间很简单。...只需要编写post-receivehook即可: # 当前在裸仓库内 cd hooks # 创建并编辑post-receive vim post-receive 输入内容: #!
创建 git 仓库,用于存放博客网站资源。 在 home/git 的目录下,创建一个名为hexoBlog的裸仓库(bare repo)。...创建一个新的 git 钩子,用于自动部署。 在 /home/git/hexoBlog.git 下,有一个自动生成的 hooks 文件夹。...我们需要在里边新建一个新的钩子文件 post-receive。...vim /home/git/hexoBlog.git/hooks/post-receive 按 i 键进入文件的编辑模式,在该文件中添加两行代码(将下边的代码粘贴进去),指定 Git 的工作树(源代码...修改文件权限,使得其可执行。 chmod +x /home/git/hexoBlog.git/hooks/post-receive 到这里,我们的 git 仓库算是完全搭建好了。
Git hooks(钩子)官方解释 和其它版本控制系统一样,Git 能在特定的重要动作发生时触发自定义脚本。 有两组这样的钩子:客户端的和服务器端的。...安装hooks 钩子都被存储在 Git 目录下的 hooks 子目录中。 也即绝大部分项目中的 .git/hooks 。...把一个正确命名且可执行的文件放入 Git 目录下的 hooks 子目录中,即可激活该钩子脚本。 这样一来,它就能被 Git 调用。 接下来,我们会讲解常用的钩子脚本类型。...服务器端钩子 Client-Side Hooks——post-receive post-receive 挂钩在整个过程完结以后运行,可以用来更新其他系统服务或者通知用户。...详情请去官网: 中文版:自定义-Git-Git-钩子 英文版:自定义-Git-Git-钩子
.初始化 git 仓库 ~ cd /home/git ~ git init --bare blog.git #参数 --bare ,创建一个裸仓库,不包含工作区 8.配置 git hook 在 blog.git.../hooks 目录下新建一个 post-receive 文件,加入以下内容 ~ vim post-receive GIT_REPO=/home/git/blog.git #仓库路径 TMP_GIT_CLONE...$TMP_GIT_CLONE rm -rf ${PUBLIC_WWW}/* cp -rf ${TMP_GIT_CLONE}/* ${PUBLIC_WWW} 添加post-receive文件的可执行权限...: deploy: type: git branch: master repo: blog-vps: git@VPS_IP:blog.git message: blog update...11.本地推送网站文件到 vps # hexo d 查看网站目录是否生成网站文件 之后还需要配置 nginx 等,本文不讨论。
第一步 - 设置Git用户帐户 出于安全考虑,我们首先创建一个用户帐户,该帐户将托管Jekyll站点的Git存储库。该用户将执行Git钩子脚本,我们将创建该脚本以在收到更改时重新生成站点。...目录必须位于主目录中并使用repo-name.git格式命名,因此git命令可以发现它。通常,repo-name应该是您站点的名称,因此git可以轻松识别站点和存储库。...在hooks目录中创建指定的文件post-receive,并在您选择的文本编辑器中打开它: $ nano ~/sammy-blog.git/hooks/post-receive 我们将配置hook以克隆对临时目录的最新更改...将以下内容复制到该文件: ~/sammy-blog.git/hooks/post-receive #!...如果不这样做,请确保您具有适当的SSH密钥,并在继续本教程之前回顾前面的步骤以解决问题。
领取专属 10元无门槛券
手把手带您无忧上云