推薦使用運行Liunx的機器
請獲取root權限后進行下面操作
安裝git
# 檢查是否安裝了git如果有版本號就無需再安裝
git -v
# 安裝git
sudo apt-get install git
創建git服務
sudo adduser git
創建證書登錄
收集所有需要登錄的用戶的公鑰,就是他們自己的id_rsa.pub
文件按照本文找id_rsa.pub文件,把所有公鑰導入到服務器的/home/git/.ssh/authorized_keys
文件里(如果沒有這些目錄和文件就自己創建),一行一個。
初始化Git倉庫
先選定一個目錄作為Git倉庫,假定是根目錄下的/srv/sample.git
,在/srv
目錄下輸入命令:
sudo git init --bare sample.git
Git就會創建一個裸倉庫,裸倉庫沒有工作區,因為服務器上的Git倉庫純粹是為了共享,所以不讓用戶直接登錄到服務器上去改工作區,並且服務器上的Git倉庫通常都以.git
結尾。然后,把owner(權限控制)改為git
sudo chown -R git:git sample.git
禁用shell登錄
出於安全考慮,第二步創建的git用戶不允許登錄shell,這可以通過編輯/etc/passwd
文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git
用戶可以正常通過ssh使用git,但無法登錄shell,因為我們為git
用戶指定的git-shell
每次一登錄就自動退出。
克隆遠程倉庫
現在,可以通過git clone
命令克隆遠程倉庫了,在各自的電腦上運行:
git clone git@server:/srv/sample.git
剩下的推送就簡單了,關於如何在本地使用可以參考,這篇文章
使用Git Hook做服務器代碼更新
1、代碼倉庫
# 進入服務器上創建好的git倉庫
cd sample.git
# 進入到hooks
cd hooks
# 復制一份post-update的hook
cp post-update.sample post-update
# 給新復制的post-update文件添加執行權限
chmod +x post-update
2、服務器生產環境代碼目錄
cd /srv
mkdir git_hook_demo
cd git_hook_demo
# 克隆剛才創建的倉庫
git clone git@服務器地址:/srv/sample.git
# 設置代碼目錄可訪問的用戶組
sudo chown git:git ./sample -R
cd sample
# 獲取到當前目錄
pwd
3、修改第一步的post-update文件
unset GIT_DIR
DIR_ONE=剛才保存的目錄地址
cd $DIR_ONE
git pull 代碼倉庫所在的地址 master
4、本地clone倉庫即可提交代碼進行使用
參考文章:https://www.liaoxuefeng.com/wiki/896043488029600/899998870925664