搭建 Git 服务器(十二)
12.搭建 Git 服务器
一、使用裸存储库(Bare Repository)
1. 安装 Git
2. 创建 git 用户组和用户
groupadd git
useradd git -g git3. 创建裸存储库
sudo su - git # 切换到 git 用户
cd /home
mkdir gitrepo
chown git:git gitrepo/
cd gitrepo
git init --bare runoob.git # 创建裸仓库(通常以 .git 结尾)
chown -R git:git runoob.git4. 配置 SSH 公钥登录
将需要访问的用户的公钥(id_rsa.pub)添加到 /home/git/.ssh/authorized_keys:
cd /home/git/
mkdir .ssh
chmod 755 .ssh
touch .ssh/authorized_keys
chmod 644 .ssh/authorized_keys
# 编辑 authorized_keys,每行一个公钥5. 克隆仓库
git clone git@<服务器IP>:/home/gitrepo/runoob.git例如:
git clone git@192.168.45.4:/home/gitrepo/runoob.git至此,一个简单的 Git 私有服务器搭建完成。
二、使用 GitLab(功能更强大)
GitLab 提供 Web 界面、用户管理、CI/CD 等功能,适合中大型团队。
1. 安装 GitLab(以 Ubuntu 为例)
sudo apt update
sudo apt install -y curl openssh-server ca-certificates tzdata perl
curl https://packages.gitlab.com/install/repositories/gitlab/gitlab-ee/script.deb.sh | sudo bash
sudo EXTERNAL_URL="http://yourdomain" apt install gitlab-ee将 yourdomain 替换为你的域名或公网 IP,例如:
sudo EXTERNAL_URL="http://101.132.XX.XX" yum install -y gitlab-ee2. 配置与启动
安装完成后,访问 http://yourdomain,首次登录需要设置管理员密码。
查看初始 root 密码:
sudo cat /etc/gitlab/initial_root_password3. 生成 SSH 密钥并添加公钥
ssh-keygen # 生成密钥对
cat ~/.ssh/id_rsa.pub # 查看公钥在 GitLab 网页中:
- 登录后点击右上角头像 → Preferences → SSH Keys
- 粘贴公钥内容,点击 Add key
4. 创建项目
- 点击 Create a project → Create blank project
- 设置项目名称(如
mywork)、URL,点击 Create project
5. 克隆项目到本地
git clone git@<服务器IP>:root/mywork.git
# 例如 git clone git@101.132.XX.XX:root/mywork.git6. 提交文件到 GitLab
cd mywork
echo "test" > test.sh
git add test.sh
git commit -m "test.sh"
git push -u origin main在 GitLab 网页中即可看到上传的文件。
三、两种方式对比
| 特性 | 裸存储库 | GitLab |
|---|---|---|
| 安装复杂度 | 简单 | 中等 |
| Web 界面 | 无 | 有 |
| 用户权限管理 | 依赖系统 SSH | 内置细粒度权限 |
| CI/CD | 无 | 内置 |
| 适合场景 | 小型团队或个人 | 中大型团队,需要完整 DevOps 流程 |