以下是搭建本地 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 部署等),请告知您的需求!