在服務器上搭建遠端git倉庫


推薦使用運行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


免責聲明!

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



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