在CentOS搭建Git服务器,部署hooks同步
来源:互联网 发布:c语言强制转换数据类型 编辑:程序博客网 时间:2024/05/18 14:26
前言
我们可以GitHub发布一些开源代码的公共仓库,但对于私密仓库就需要收费了。公司内部通常会搭建自己的Git服务器,我也通过在自己的服务器上搭建练习一下。
开始前先说一下服务器信息,这里是阿里云的CentOS 6.5 64位操作系统。
确认服务器是否安装Git
[root@iZ25r8k6ifuZ git]# rpm -qa git
git-1.7.1-3.el6_4.1.x86_64
这里也已经安装过了,如果没有安装可以用yum install git 安装。
------------------------------------------------------------------------------------------
1.首先安装git
yum install git
2.新建一个linux用户,起名为git
adduser git
3.在git用户目录中新建目录 .ssh
cd /home/git/mkdir .ssh
4.在/home/git/.ssh/目录中新建authorized_keys文件,并将客户端提供的公钥(id_rsa.pub)黏贴到该文件中
touch authorized_keys 或 vi authorized_keys
5.在项目目录创建一个git裸仓库,假如当前项目目录为/home/git/project.git
git init --bare project.git
6.将项目目录和git用户目录下的.ssh目录的所有者和所属组都设置成git
chown -R git.git project.git chown -R git.git /home/git/.ssh/
7.为了安全考虑,禁用git用户的shell登录
vi /etc/passwd注释 ##git:x:500:500::/home/git:/bin/bash 改为 git:x:500:500:git version control:/home/git:/usr/bin/git-shell
8.git服务器打开RSA认证
vi /etc/ssh/sshd_config
下面3个打开
1.RSAAuthentication yes 2.PubkeyAuthentication yes 3.AuthorizedKeysFile .ssh/authorized_keys
重启 ssh /etc/rc.d/init.d/sshd restart
client
1.生成公钥,并复制到剪切板
ssh-keygen -t rsapbcopy < ~/.ssh/id_rsa.pub
此步骤要将公钥发给git服务器管理员
2.在本地新建git仓库
git init
3.新建一个文件并推送到服务器
touch readme.txtgit add readme.txtgit commit -m "readme"git remote add origin git@xxx.xxx.xxx.xxx:/home/git/project.gitgit push origin master
注:如果提示需要密码,请检测公钥是否配置成功或RSA是否开启。
自己linux 测试
git clone git@192.168.223.128:/home/git/project.git /home/www/wwwroot/project
git hook 自动布署代码
假设你的项目也是跑在此台服务器上,那自动布署代码就很简单了,比如你的在线服务代码在 /home/www/wwwroot/project 文件夹中。
你先初始化代码库:
$ git clone /home/git/project.git /home/www/wwwroot/project
创建脚本
现在我们进入 /home/git/project.git 目录下的 hooks 文件夹,编辑脚本:
cd /home/git/project.git/hooks
vim post-receive
-------------------------------------------
#!/bin/sh
# 删除 GIT_DIR 环境变量,避免干扰
unset GIT_DIR
# 增加生产环境项目路径环境变量
WORKPATH=/home/www/wwwroot/project
# 进入生产目录
cd $WORKPATH git add . -A && git stash
git pull origin master
echo 'done!!!'
-------------------------------------------
chown -R git:git post-receive
chmod +x post-receive
测试执行下
./post-receive
---------------------------------------------------------------
如果报错
remote: No local changes to save
remote: error: cannot open .git/FETCH_HEAD: Permission denied
remote:
remote: done!!!
修改
cd /home/www/wwwroot/project
chown -R git:git .git
- 在CentOS搭建Git服务器,部署hooks同步
- git服务器的搭建和自动化部署(hooks)
- 在CentOS搭建Git服务器
- 在CentOS搭建Git服务器
- Linux CentOS SVN 设置钩子hooks/post-commit来同步更新服务器web目录,实现代码自动部署
- CentOS 部署git服务器
- 在centos上搭建git服务器
- 在centos上搭建git服务器
- 在 CentOS 下搭建 Git 服务器
- 在CentOS 7中搭建Git服务器
- 搭建Git服务器/Centos服务器git升级/git上传服务器自动同步
- centos搭建git服务器,并同步线上项目
- CentOS 搭建git 服务器
- CentOS 搭建Git服务器
- Centos搭建git服务器
- CentOS搭建Git服务器
- CentOS搭建Git服务器
- centos搭建git服务器
- 【Unity】坑爹的Bug
- 找到一个数字的位置
- 财务自由的重要前提是收入的非即时反馈
- Multi view Geometry in Compution Vision 学习笔记 第二章(1)
- TCP/IP 和 HTTP不了解?看完这篇文章,网络知识就全懂了
- 在CentOS搭建Git服务器,部署hooks同步
- FPGA基础及Verilog语法精讲
- 2017/11/20每日一博
- 吉尔德定律
- 线段树(segment tree)
- 获取控件的高度
- 摩尔定律还有效吗
- STM8S 功耗总结
- 并发编程相关类、接口