一.yum安裝git
yum install git -y
git --version
二.建立git使用者
useradd git
passwd git # 會提示輸入密碼,按要求輸入即可
修改/etc/passwd
git:x:1000:1000::/home/git:/usr/bin/git-shell
三.建立空倉庫
在/home/git/下建立乙個project.git的資料夾,之後我們在這個資料夾下初始化建立倉庫並給予相應許可權。
mkdir project.git
cd project.git
git init --bare # git init 是初始化空倉庫的意思,而引數 --bare 是代表建立裸倉庫,這個引數一定記得帶上
cd ..
chown -r git:git project.git/
四.在伺服器端開rsa認證
伺服器安裝ssh(安裝yum install sshd 啟動systemctl start sshd.service 預設啟動systemctl enable sshd.service)後,進入 /etc/ssh 目錄,編輯 sshd_config修改配置
passwordauthentication no中的「no」改為yes,如果有注釋,將注釋去掉(防止git提交出現:publickey,gssapi-with-mic,gssapi-keyex)
rsaauthentication yes
pubkeyauthentication yes
authorizedkeysfile .ssh/authorized_keys
找到並開啟這三行,如果沒有自己寫上去,之後重啟ssh
systemctl restart sshd.service
.ssh/authorized_keys這個是公鑰儲存的地方,是在/home/git/下的.ssh/下存放,實際目錄/home/git/.ssh/authorized_keys:
vim .ssh/authorized_keys
輸入在客戶端中cat id_rsa.pub檔案的內容,一行一使用者
chmod 700 .ssh
cd .ssh
chmod 600 authorized_keys
五.實現自動同步到站點目錄(www)
就比如剛才我們往遠端倉庫推送了index.php檔案,雖然提示推送成功,但是我們現在在伺服器端還看不到效果,心理總是不爽。又比如我寫了個html頁面,我想在站點中馬上看到,那自動同步就派上用場了。
自動同步功能用到的是 git 的鉤子功能.
伺服器端:進入裸倉庫:/home/git/project.git
cd /home/git/project.git
cd hooks
//這裡我們建立post-receive檔案
vim post-receive
//在該檔案裡輸入以下內容
#!/bin/bash
git --work-tree=/home/www checkout -f
//儲存退出後,將該檔案使用者及使用者組都設定成git
chown git:git post-receive
//由於該檔案其實就是乙個shell檔案,我們還應該為其設定可執行許可權
chmod +x post-receive
如果你在git推送的工程中發現推送成功但是在www目錄下並沒有自己的**,這時候你可要注意了:這是由於資料夾的許可權的原因造成的! 假設你的www目錄的所屬的使用者組為root,你可以將你的git使用者加入這個組;並給git新增寫入許可權,或者其他解決方法,反正你要伺服器上的git使用者有許可權進入www資料夾。
chown -r git:git /home/www
CentOS 搭建Git伺服器
1,安裝openssh服務斷和客戶端 yum y install openssh 2,安裝git和python setuptools yum y install git python setuptools 3,獲取並安裝gitosis,來管理git倉庫 git clone cd gitosis py...
CentOS搭建Git伺服器
root localhost desktop yum install y git 2 建立乙個git使用者,用來執行git服務 root localhost desktop useradd r s bin sh c git version control d home git git 3 設定許可權...
Centos搭建Git伺服器
1.安裝git centos安裝git只需要執行如下命令,直接安裝git yum install git2.建立git使用者 adduser git3.控制git使用者許可權,關掉bash許可權 vi etc passwd找到類似git x 1001 1001 home git bin bash 將...