1. 程式人生 > >centos7下git服務器端搭建

centos7下git服務器端搭建

cart div ash sta 執行 blog ruby 再次 發現

1、安裝GIT

yum install git
git --version

接下來創建一個git用戶組和用戶,用來運行git服務:
groupadd git
adduser git -g git
passwd git

2、創建證書登錄

收集所有需要登錄的用戶的公鑰,公鑰位於id_rsa.pub文件中,把公鑰導入/home/git/.ssh/authorized_keys文件裏,一行一個。如果沒有該文件創建它
git 安裝及配置參考

 cd /home/git/ 
  mkdir .ssh 
  chmod 700 .ssh 
  touch .ssh/authorized_keys 
  chmod 600 .ssh/authorized_keys

3、初始化Git倉庫

首先我們選定一個目錄作為Git倉庫,假定是/usr/local/git/project.git, 在/usr/local/git目錄下輸入命令:

cd /usr/local
 mkdir git
 chown git:git git/
 cd git
 git init --bare project.git

以上命令Git創建一個空倉庫,服務器上的Git倉庫通常都以.git結尾。然後,把倉庫所屬用戶改為git:
chown -R git:git project.git

4、克隆倉庫

git clone git@192.168.33.10:/usr/local/git/project.git #可能需要輸入git用戶密碼
git clone root@192.168.33.10:/usr/local/git/project.git #此時輸入root密碼


192.168.33.10 為 Git 所在服務器 ip

5、禁止git用戶shell登錄

vi /etc/passwd

修改git的bash 從/bin/bash改為/usr/bin/git-shell

設置git鉤子

進入我們的裸倉庫的hooks文件夾,然後新建一個post-receive文件。

cd hooks/

vim post-receive

在post-receive寫入以下內容:

#!/bin/bash

git --work-tree=/www/carcartalk checkout -f

其中/www/carcartalk為你實際需要同步的站點目錄。
然後修改post-receive為可執行文件(其實這就是一個腳本文件)

chmod +x post-receive

post-receive的原理就是,當遠程倉庫發現有用戶執行了push操作,就會執行一個腳本post-receive(鉤子)。其實git還提供了很多其它動作的鉤子,這裏我們就不深入了解了。

註意:同時你還需要修改你的web站點目錄的權限,修改所屬用戶與用戶組為git,否則鉤子的權限可能會不足而導致執行失敗。(你也可以通過添加git用戶到相應的用戶組來解決問題)

chown git:git -R /www # 修改所屬用戶

設置好鉤子後,當你本地再次執行push的時候,你會發現你web目錄的文件也同步的更新了。

http://blog.csdn.net/baidu_30000217/article/details/51327289

centos7下git服務器端搭建