centos7下git服務器端搭建


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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM