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用戶到相應的用戶組來解決問題)
設置好鈎子后,當你本地再次執行push的時候,你會發現你web目錄的文件也同步的更新了。
http://blog.csdn.net/baidu_30000217/article/details/51327289
