Sorry, your browser cannot access this site
This page requires browser support (enable) JavaScript
Learn more >

搭建自己的独立 Git 服务器可以让你完全控制代码仓库,适合团队协作和私有项目管理。

下面我将详细介绍两种主流的搭建方案:

  1. 方案 A:使用 Gitea(轻量、现代化,强烈推荐)
  2. 方案 B:使用纯 Git 核心 + SSH(最基础、最原始)

因为我的需求是:在自己的阿里云ECS服务器上搭建一个独立的git服务器,用于托管我的个人项目(自有我个人使用)。所以我现在方案B,本文也是讲解方案 B的部署方法

这种方式不提供 Web 界面,只创建一个可以通过 SSH 访问的裸仓库,非常适合简单的代码托管和之前提到的 Git Hooks 自动化部署。

步骤 1:服务器准备

1.1 安装 Git:

1
2
sudo apt update
sudo apt install -y git

1.2 创建 git 用户

1
sudo adduser --system --shell /bin/bash --gecos 'Git Version Control' --group --disabled-password --home /home/git git

1.3 配置 SSH 密钥登录(重要)
在你的本地开发机器上,将 SSH 公钥(通常是 ~/.ssh/id_rsa.pub)内容,添加到服务器的 /home/git/.ssh/authorized_keys 文件中。

1
2
3
4
5
6
7
8
9
10
# 在本地机器执行
cat ~/.ssh/id_rsa.pub
# 复制输出内容

# 在服务器上执行 (以 sudo 用户)
sudo su - git
mkdir -p ~/.ssh
echo "你复制的公钥内容" >> ~/.ssh/authorized_keys
chmod 700 ~/.ssh
chmod 600 ~/.ssh/authorized_keys

这样你就可以免密码通过 SSH 以 git 用户身份登录服务器了。

步骤 2:在服务器上创建裸仓库

裸仓库没有工作区,专门用于作为远程中央仓库。

1
2
3
4
5
6
7
8
9
# 在服务器上,以 git 用户身份操作
sudo su - git
# 创建一个目录来存放所有仓库
mkdir -p /home/git/repositories
cd /home/git/repositories
# 初始化一个裸仓库,通常以 .git 结尾
git init --bare my-project.git
# 修改仓库的所有权(如果是在 sudo 下创建的,可能需要)
chown -R git:git my-project.git

步骤 3:从本地连接并使用

现在,你可以在本地机器上,将这个服务器上的裸仓库添加为远程仓库。

1
2
3
4
# 在你的本地项目目录中
git remote add origin git@<你的服务器IP>:/home/git/repositories/my-project.git
# 然后推送代码
git push -u origin main

系统会通过 SSH 进行认证,并将代码推送到你的私有服务器上。

评论