以下是搭建本地 Git 服務器的通用步驟,支持團隊協作或私有倉庫管理:
方法 1:基于 SSH 的簡單部署(適合小團隊)
步驟 1:安裝 Git
在服務器上安裝 Git(以 Ubuntu 為例):
sudo apt update
sudo apt install git
步驟 2:創建 Git 用戶
sudo adduser git # 新建用戶 "git"
sudo passwd git # 設置密碼(可選)
步驟 3:初始化裸倉庫
su - git # 切換到 git 用戶
mkdir /home/git/repo.git # 創建倉庫目錄(以 "repo" 為例)
cd repo.git
git init --bare # 初始化裸倉庫(不包含工作目錄)
步驟 4:客戶端克隆與推送
團隊成員可通過 SSH 地址訪問:
# 克隆倉庫(將 <server_ip> 替換為服務器 IP)
git clone git@<server_ip>:/home/git/repo.git# 提交代碼后推送
git add .
git commit -m "Initial commit"
git push -u origin main
方法 2:使用 Gitolite(權限精細管理)
步驟 1:安裝 Gitolite
sudo apt install gitzlib1g
wget https://download.github.com/gitolite-4.11.5.tar.gz
tar -xzvf gitolite-4.11.5.tar.gz
cd gitolite-4.11.5
sudo mkdir -p /usr/share/gitolite
sudo make install
步驟 2:配置管理員權限
# 將你的公鑰(id_rsa.pub)上傳到服務器
ssh git@<server_ip> 'git init' # 初始化管理員權限
步驟 3:管理倉庫與權限
通過 git@gitserver:gitolite-admin
倉庫編輯 conf/gitolite.conf
文件,定義用戶組和倉庫權限:
repo repo1RW+ = admin user1repo repo2RW = @dev-team
方法 3:使用 Gitea(Web 界面 + 全功能)
步驟 1:下載并安裝 Gitea
wget https://dl.gitea.io/gitea/release/gitea-1.20.3-linux-amd64
chmod +x gitea-1.20.3-linux-amd64
sudo mv gitea-1.20.3-linux-amd64 /usr/local/bin/gitea
步驟 2:啟動服務
sudo mkdir -p /data/gitea
sudo ./usr/local/bin/gitea web -workDir "/data/gitea"
步驟 3:訪問 Web 界面
瀏覽器訪問 http://<server_ip>:3000
,按提示創建管理員賬號并配置倉庫。
關鍵注意事項
-
SSH 密鑰管理:
- 客戶端需提前生成 SSH 密鑰(
ssh-keygen
),并將公鑰(id_rsa.pub
)添加到服務器。 - 若遇到權限問題,確保倉庫目錄權限為
git
用戶所有:chown -R git:git /home/git/repo.git chmod -R 755 /home/git/repo.git
- 客戶端需提前生成 SSH 密鑰(
-
防火墻配置:
- 開放服務器的 SSH 端口(默認 22)或 Gitea 端口(如 3000):
sudo ufw allow 22/tcp sudo ufw allow 3000/tcp
- 開放服務器的 SSH 端口(默認 22)或 Gitea 端口(如 3000):
-
備份與安全:
- 定期備份裸倉庫目錄(如
/home/git/repo.git
)。 - 禁用
git
用戶的 Shell 登錄權限(提升安全性):sudo usermod -s /usr/bin/git-shell git
- 定期備份裸倉庫目錄(如
選擇建議
- 簡單快速:SSH 裸倉庫(適合 3-5 人團隊)。
- 權限精細:Gitolite(支持復雜權限分組)。
- 全功能 Web 界面:Gitea(接近 GitHub/GitLab 體驗)。
如果需要更具體的配置(如 HTTPS 訪問、Docker 部署等),請告知您的需求!