git hook 自动部署

1. 当前虚拟站点根目录的 .git/ 权限

2. 当前项目裸仓库创建 hooks/post-receive 文件,并给予x 的权限

3. 复制如下内容

#!/bin/sh
unset $(git rev-parse --local-env-vars)
REPO="[email protected]:edc2.git"
#BRANCH=`echo $refname | sed -n ‘s/^refs\/heads\///p‘`
#BRANCH_DIR="/root"
SSH_DEST="[email protected]"
ssh "$SSH_DEST" /bin/sh <<-EOF
cd /alidata/www/v2.edc.com
git pull origin master
EOF

  

*******************

可能有如下问题

su - git
ssh-keygen
ssh-copy-id [email protected]
ssh [email protected]

http://stackoverflow.com/questions/37455781/gitlab-post-receive-hook-host-key-verification-failed

时间: 2024-10-09 05:23:38

git hook 自动部署的相关文章

做了一个简易的git 代码自动部署脚本

项目是THINKPHP写的 用了 oschina git 进行版本管理. 公网服务器是CentOS.每次用FTP上传很麻烦. 所以想到了在服务器上安装一个GIT进行 pull代码.因为我的远程服务器数据库和本地不一样,所以代码pull后还需要修改 几个config.php数据库配置文件. 所以想再git 代码更新后,要自动执行config.php文件的替换或者修改. 其中看到这里讨论http://www.v2ex.com/t/81173  git hook 然后看了下比较麻烦.也看不懂. 所以就

git hooks自动部署

一. 准备 1. 笔者的git库和web服务器在同一台机器上. # cd /data/wwwroot/html               //html目录 # git clone /home/git/html .         //首次需克隆远程库 # chown -R www.www .             //修改WEB权限为程序运行者 2. 由于hooks下的脚本一般是由git执行,所以git需要拥有相关目录的写入权限. # usermod -a -G git www     //

git hook自动化部署

一.建立本地仓库 cd 项目路径 git init git add . git commit -m "日志" 二.建立服务器git用户 yum install -y git groupadd git useradd -g git git #这里没有加git禁止登陆,因为nologin 总是报错 cd /home/git git init --bare xxx.git cd xxx.git 三.添加远程连接 git remote add origin 远程仓库地址 四.添加git登陆密钥

使用 Git Hook 实现网站的自动部署

自动化能解放人类的双手,而且更重要的是,因为按照规定的流程来走,也减少了很多误操作的产生.不知道大家平时都是怎么样更新自己生产环境的代码的,FTP 覆盖旧文件.服务器定时任务去 build 最新的源码,还是有更高级的做法? 目前我在使用 Git Hook 来部署自己的项目.Git Hook 是 Git 提供的一个钩子,能被特定的事件触发后调用.其实,更通俗的讲,当你设置了 Git Hook 后,只要你的远程仓库收到一次 push 之后,Git Hook 就能帮你执行一次 bash 脚本. 下面是

git管理和自动部署项目

当一个项目需要纳入到版本控制的时候,选择的工具还是比较多的,最常见的就是工具有CVS,SVN,GIT等.在平时的开发中视情况而定,从来就没有最好的版本控制工具,只有最适合的工具.在这里我习惯用git来管理自己的项目,当然之前使用svn管理的,但是当用了git工具就不愿意再用其它的工具来管理.这里除了习惯之外,git的很多功能是svn不具备的,最简单的就是离线提交,用git管理的项目你会发现整个项目的大小变化不大,不像svn那样每个目录又有一个.svn 的目录,而且会使项目的变得很大.关于git与

Webhook实践 —— PHP自动部署

Webhook实践 -- PHP自动部署 1.部署Gogs 参考博客:使用 Gogs 搭建自己的 Git 服务器 2.添加git的ssh公钥 因为是用git用户部署的Gogs,接下来在服务器上配置用git账号配置ssh公钥 首先在主机上生成秘钥: [[email protected] ~]$ ssh-keygen -t dsa -P "" -f ~/.ssh/id_dsa Generating public/private dsa key pair. Created directory

Git Server &amp; Git Hook

http://ju.outofmemory.cn/entry/16893 我喜欢 github,我现在的个人代码全部是托管在上面了,但是一些公司或者某些项目不适合放入github中,你希望能有一个完全私有的仓库,如果你有一台服务器,这显然是很容易办到的事. 下面简单的描述我在某个项目中布署的一个git服务,并且本地提交更新后,服务器将自动更新代码到在线代码的仓库. 创建用户并使客户机可通过密钥登录服务器 服务器中操作: root 用户ssh登录服务器,创建一个新用户用来给git登录及其操作,比如

Jenkins+git+webhook自动触发部署和测试任务

Jenkins+git+webhook自动触发部署和测试任务 需求: 目前上线前会将需要上线的代码push到release分支,然后由人工填写参数点击触发jenkins上的任务.希望这个过程能完成自动化,只要有人往release上推代码,就自动跑部署release分支并测试 解决办法及步骤: 1.在jenkins里需要自动触发的job里的"源码管理"部分添加设置,如下图.填好git仓库url和需要检测的分支名称 注意事项: a.在填url的时候可能会提示找不到命令的错误,遇到这个错的解

【Webhooks】使用Git的Webhooks进行服务器自动部署代码

使用Git的Webhooks进行服务器自动部署代码 本文项目地址 https://github.com/diandianxiyu/PageBlog/blob/master/%E4%BD%BF%E7%94%A8Git%E7%9A%84Webhooks%E8%BF%9B%E8%A1%8C%E6%9C%8D%E5%8A%A1%E5%99%A8%E8%87%AA%E5%8A%A8%E9%83%A8%E7%BD%B2%E4%BB%A3%E7%A0%81.md 如有错误,请指正~ 前言 之前一直想做自动化运