centos7下git服務器端搭建
阿新 • • 發佈:2018-03-12
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服務器端搭建