搭建git服务器及利用git hook自动布署代码
注意:服务器:Ubuntu Server 14.04,我的项目比较小,所有操作都使用root,建议最好新建一个用户(需要有管理员权限,否则在后面使用hooks自动部署代码时会出现各种权限问题,很蛋疼的)。
一、搭建GIT服务器
1. 安装GIT
1.1 安装前最好先更新apt-get,同时需要事先安装好openssh,对应的两条命令如下:
apt-get update
apt-get install openssh
1.2 通过apt-get安装git
apt-get install git
2. 初始化一个仓库
1.进入一个目录,选择该目录做为GIT仓库
cd /opt
2.初始化一个仓库,名称为 test.git
git init --bare test.git
此刻,仓库的路径就是
/opt/test.git
3.我们通过ssh命令来操作git仓库,为了避免每次输入密码,先在本地生成一个公钥,命令如下
ssh-keygen
提示:一路回车下来以后在 ~/.ssh 目录下可以看到一个id_rsa.pub的文件,将其中的内容复制到服务器的 /root/.ssh/authorized_keys文件中,如果是多个伙伴协同开发,只需要在该同伴的电脑上生成私钥对,将id_rsa.pub的内容复制到authorized_keys文件中,每一个用户的私钥各占一行,中间不能有空格,回车等字符。
3. 本地克隆远程仓库
git clone root@123.123.123.123:/opt/test.git
将123.123.123.123替换为你的服务器ip
至此,一个git仓库就完成了,你可以本地提交、推送,接下来我们来实现通过git hooks实现代码的自动部署
二、实现代码自动部署
1. 服务器作为客户端访问git仓库
要获取GIT仓库的代码,服务器此时需要作为一个客户端访问GIT仓库,所以首先要将服务器root(记住用户必须是同一个用户)用户的公钥加入/root/.ssh/authorized_keys文件中,生成公钥的方法参考步骤
二、2.3
2. 为服务器开发目录克隆GIT仓库
将该服务器上的git代码库克隆一份到服务器开发目录,假设目录是/var/www/
git clone root@123.123.123.123:/opt/test.git
3. 修改post-uodate
修改git仓库下hooks下的 post-update.sample (本例子的路径:/opt/test.git)修改为 post-update ,并写入以下脚本:
#!/bin/sh
#
DEPLOY_DIR=/var/www/test/
echo "start git pull var/www/test/"
cd $DEPLOY_DIR
env -i git reset --hard
env -i git pull
echo "end"
注意post-update的权限,如果不放心,直接改权限为 777,最好的做法就是跟hooks下的其他文件权限一致。
保存文件,当每次客户端有推送时,服务器端的post-update会自动从git仓库中pull一份到服务器上指定的开发目录
这里需要注意开发目录的权限,以及开发目录的正确性,本人比较懒,项目比较小,就直接root用户了。
陈朔同学第一次认真的写博文(第一次,很烂,将就看,转载请注明出处)
搭建git服务器及利用git hook自动布署代码的更多相关文章
- Windows/Linux 环境搭建Git服务器 + vs2012集成git
1. 下载.安装Git 我的系统是Windows 7,需要安装Git for Windows. 下载地址: http://code.google.com/p/msysgit/downloads/lis ...
- Git学习:利用Git和TortoiseGit把代码传输到网络服务器
版本控制这块,一直用SVN.感觉挺好用,比VSS要好用些.不过,近期在网上,又谈到时下很流行的Git.就想看看Git到底是何方神圣.趁着五一在家无事,就静下心来,简单研究一下. 当下,网络上提供的基于 ...
- 阿里云CentOS7.3搭建多用户私有git服务器(从安装git开始)
起因 自己会有练手的不敢公开的项目,就自己搭建个服务器放自己的渣代码了. 在经历了连不上服务器.没有访问权限.没法提交以后,我打通了任督二脉. 我这个git服务器适合条件:1.就那么几个人小项目,不是 ...
- git服务器的建立——Git折腾小记
转自:http://blog.csdn.net/xsl1990/article/details/25486211 如果你能看到一些sshd相关的进程信息,则说明你已经有这个服务了,否则(或者你想更新的 ...
- Windows Git 服务器 客户端 Delphi Git配置
装Git后本地单机版就有了版本管理功能. git 使用记录 git 客户端 这2个工具足够用. git for windows,http://git-scm.com/download/,Git-1.9 ...
- Installer - 使用Maven自动布署至外部Tomcat
一.配置相关文件 1.配置tomcat的conf/tomcat-users.xml文件 <tomcat-users> <role rolename="manager-scr ...
- Git服务器,仓库的hook监控
简单应用场景:代码提交到git仓库,仓库监控到变化的jar包,然后把变化的jar包推到私服maven仓库. Git预定义了触发时机: ClientSide hooks: 1 pre-commit,当执 ...
- [PHP]利用XAMPP搭建本地服务器, 然后利用iOS客户端上传数据到本地服务器中(三. PHP端代码实现)
一.安装XAMPP http://www.cnblogs.com/lidongxu/p/5256330.html 二. 配置MySql http://www.cnblogs.com/lidongx ...
- 【安富莱专题教程第3期】开发板搭建Web服务器,利用花生壳让电脑和手机可以外网远程监控
说明:1. 开发板Web服务器的设计可以看我们之前发布的史诗级网络教程:链接.2. 需要复杂些的Web设计模板,可以使用我们V6开发板发布的综合Demo:链接.3. 教程中使用的是花生壳免费版, ...
随机推荐
- string 转 int,int 转 string
string str="12345"; int b=atoi(str.c_str()); 可以配合atof,转为double char buf[10]; sprintf(buf, ...
- 删除sql计划 调用的目标发生了异常。 (mscorlib) 其他信息: 用户 'sa' 登录失败。
在删除以前创建的sql的计划任务时,弹出如题错误提示,发现错误原因在于,sa密码更改过,导致在删除时因为sa的密码和当前的密码不正确出现此错误. 解决办法: 1.在计划任务的编辑窗口,找到管理连接 2 ...
- mysql开启/关闭 update delete 安全模式
在使用mysql执行update的时候,如果不是用主键当where语句,会报如下错误,使用主键用于where语句中正常. 异常内容:Error Code: 1175. You are using sa ...
- 根据View获取该控制器
//根据View获取控制器 - (UIViewController*)viewController { for (UIView* next = [self superview]; next; next ...
- tomcat连接数设置
如何加大tomcat连接数 在tomcat配置文件server.xml中的<Connector ... />配置中,和连接数相关的参数有:minProcessors:最小空闲连接线程数,用 ...
- C#中使用正则表达式提取超链接地址的集中方法
一般在做爬虫或者CMS的时候经常需要提取 href链接或者是src地址.此时可以使用正则表达式轻松完成. Regex reg = new Regex(@"(?is)<a[^>]* ...
- XAMPP(v1.83)中的PHP(v5.5.15)访问SQLServer2014
驱动安装: 1. 下载SQLServer的微软官方PHP驱动,http://msdn.microsoft.com/en-us/sqlserver/ff657782.aspx 2. 安装SQLSRV31 ...
- Trie/最短的名字
题目链接 /* 简单trie树的应用,注意在初始化的时候要把cnt也初始化,不然,WA! 下面的四分代码各有特点 */ //数组型,名字查询. #include<cstdio> #incl ...
- IDAPython: importing “site” failed
问题:IDA启动时,弹出IDAPython: importing “site” failed对话框. 解决办法:环境变量添加PYTHONHOME,值为python安装路径,比如:C:\Python27
- POJ3468--A Simple Problem with Integers--线段树/树状数组 改段求段
题目描述 You have N integers, A1, A2, ... , AN. You need to deal with two kinds of operations. One type ...