搭建 Git 服务器(十二)

12.搭建 Git 服务器

一、使用裸存储库(Bare Repository)

1. 安装 Git

2. 创建 git 用户组和用户

groupadd git
useradd git -g git

3. 创建裸存储库

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.git

4. 配置 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-ee

2. 配置与启动

安装完成后,访问 http://yourdomain,首次登录需要设置管理员密码。

查看初始 root 密码:

sudo cat /etc/gitlab/initial_root_password

3. 生成 SSH 密钥并添加公钥

ssh-keygen                    # 生成密钥对
cat ~/.ssh/id_rsa.pub         # 查看公钥

在 GitLab 网页中:

  • 登录后点击右上角头像 → PreferencesSSH Keys
  • 粘贴公钥内容,点击 Add key

4. 创建项目

  • 点击 Create a projectCreate blank project
  • 设置项目名称(如 mywork​)、URL,点击 Create project

5. 克隆项目到本地

git clone git@<服务器IP>:root/mywork.git
# 例如 git clone git@101.132.XX.XX:root/mywork.git

6. 提交文件到 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 流程