50% off 所有套餐限时优惠,起价 $2.48/mo
11 min left
开发者工具与DevOps

如何搭建自己的 Git 服务器:Linux 完整指南

Pius Bodenmann By Pius Bodenmann 11 min read Updated Jan 23, 2024
如何搭建自己的 Git 服务器

如今编程和软件开发需求激增。随之而来,这个领域的工具需求也水涨船高。这催生了一个竞争激烈的生态,各种编程和 DevOps 工具都在争夺用户的青睐。Git 就是其中之一。加上远程办公已成常态,大多数开发者都在电脑前工作,越来越多人选择在远程服务器上部署自己的工具,包括 Git。如果你也有这样的需求,想搭建自己的 Git 服务器,那你来对地方了。

本文将介绍 Git 的基本概念,分析其优缺点,然后说明搭建自己的 Git 服务器所需的条件。一起来看看吧。

What is Git?

Git 是一个 DevOps 工具,帮助开发者高效地管理项目、部署代码。Git 的核心功能是追踪源代码在不同时间段的变化。Git 免费开源 并定期获得更新。这使 Git 成为全球最易访问、最可靠的代码开发工具之一。每台安装了 Git 的计算机都充当一个完整的代码库,拥有独立的文件变更历史记录。经过近 20 年的活跃开发和 30 多次更新迭代,Git 目前运行在 2.40.0 版本,未来还会继续更新。现在我们来看看 Git 的一些实际用途,这样你就能理解为什么首先要部署 Git 服务器。

Git 使用场景

在急着自己搭建 Git 本地服务器之前,我们先来看看 Git 的主要使用场景。这样可以帮助我们理解为什么首先要运行 Git 服务器。

Cloning Repository

许多开发者喜欢在服务器上创建 Git 仓库,用来追踪项目文件的变化。通过几条基本命令,Git 让你能够复制 Linux 内核仓库,并为你关心的文件生成清晰高效的变更记录。这个过程很简单,无论是小型还是大型项目都能轻松管理。这个过程也被称为branching因为本质上,你是从已有的仓库创建一个新分支。

Git Workflow

Git 工作流是另一个主要应用场景,当你搭建自己的 Git 服务器后就会用到。用本地 Git 服务器克隆出两套分支,其中一套代表你的项目(比如某个网站),另一套作为生产分支。这样,所有开发者的变更都会被记录在生产分支上,还能在部署前进行测试。这种分层开发和测试的方式不仅提高效率,还让你能轻松追踪开发过程和每一个变更。

Merging

还记得在仓库中创建分支和更新日志吗?顾名思义,合并正好相反。合并通常被认为是 Git 中最难的操作。它的目的是把一个分支中的代码变更重新并入原始的主分支。这样做通常是为了生成一份完整的项目报告和变更历史,把来自不同开发分支的所有改动整合到一个清晰易读的仓库里。项目进行中你需要分支来避免混乱,而合并则是反向操作,在项目排查问题阶段能让你看到更清楚的全局情况。

自主托管 Git 服务器:优势与劣势

每个工具都有关键的优缺点,用户在使用前必须了解。本节我们来看 Git 的实际情况。需要注意的是,这些优缺点仅适用于自托管的 Git,而自托管正是本指南的重点,我们继续深入。

自托管 Git:优势 

无第三方参与

自托管 Git 意味着只有你和你的团队能访问文件。没有第三方参与,你可以安心推进项目。数据安全性更高,原本用于安全防护的资源可以挪作他用。

Security

说到安全性,通过最佳实践和第三方工具的配合,Git 可以达到很高的安全水平。自建 Git 服务器的安全性确实会比使用托管服务有所下降,但你对自己运维的安全措施有完全的控制权,想做到多安全就能做到多安全。

Unlimited Repositories

还记得克隆和分支吗?用 Git 创建的代码库数量没有限制。这让它非常适合大型项目,其中每个开发分支都需要自己的代码库。对于包含 3D 资源等大文件的项目,以及使用 Unity 的情况,这也特别有用。

自建 Git: Cons

需要大量的管理工作

Git 仓库很容易失控。如果你决定在自己的服务器上搭建 Git 服务,管理分支和元数据会很快变成噩梦。要么你得异常谨慎地处理每一个细节,要么找一个专业开发者来帮你搞定。

学习曲线陡峭

托管 Git 是一回事,但要真正掌握它、运行自己的 Git 本地服务器又是另一回事。在所有基于仓库的 DevOps 工具中,Git 的学习曲线可以说是最陡峭的。你要么需要投入大量时间学习,要么就得依赖第三方服务。

不支持图形界面和 Windows

想在 Windows 上搭建 Git 服务器?或者想用 GUI 来配置 Git 服务器?那你可能会失望。你只能使用以 Linux 内核为基础的操作系统,而且没有 GUI 来简化操作。想要安装 Git 服务器并自托管?那你需要先掌握编程基础。

Outdated Method

从各个角度来看,在自建服务器上运行 Git 都显得过时了,其他更高效的 Git 运行方式早已超越了它。更高效的 Git 工作流的典型例子是运行 GitLab,所以在你决定自建 Git 服务器之前,不妨先了解一下 GitLab too!

安装 Git 服务器的必要条件 

我们来快速了解一下搭建 Git 服务器需要什么。要自己托管 Git,你需要两个东西:一台服务器和 Git 本身。另外还需要一些编程知识来配置 Git 服务器。

Git Server

对于服务器,你可以用自己的另一台电脑,选择传统服务商的独立服务器,或者如果你想更自主地管理,可以使用 cloud VPS (虚拟专用服务器)。通过拥有 VPS,你可以直接管理服务器,同时运行 Git 实例。请注意,你的服务器需要安装 Linux 发行版才能设置 Git 服务器。Cloudzy 提供多种 Linux VPS 提供超过 10 个知名 Linux 发行版,包括 Ubuntu、Debian、CentOS、Kali 和 OpenSUSE。每月仅需 ¥4.95 起,即可在靠近你的位置获得可信赖的 Linux 服务器,保证连接质量稳定,用于自托管和运行 Git 服务器。

Linux VPS 托管

选择经济版或高级 Linux VPS 来托管网站或远程桌面,价格最低。VPS 运行在 Linux KVM 上,效率更高,采用强大硬件和 NVMe SSD 存储,速度更快。

Read More

Git Instance

设置 Git 服务器的过程很简单,我们会在安装过程中自动完成。如前所述,Git 是开源的,完全免费。这就是为什么许多开发者都倾向于使用 Git,而不是其他付费的代码库管理工具。现在我们已经了解了前置条件,让我们直接进入在 Linux 服务器上安装 Git 服务器的详细步骤吧。

在 Linux 上安装 Git 服务器(分步指南)

步骤 1:下载并安装 Git

下面是安装 Git 服务器的第一步。在你选择的 Linux 发行版的终端中,输入以下命令开始下载 Git:

基于 Ubuntu/Debian 的发行版:

sudo apt install git

基于 Arch 的发行版:

sudo pacman -S git

基于 RHEL 的发行版:

sudo dnf install git

该命令会在您的 Linux 服务器上下载并安装 Git。请等待进程完成。

第二步:注册并配置 Git 服务器

如果您在另一台计算机上有本地服务器,请启动它。否则,如果您有 VPS,请使用 SSH 或 RDP 远程连接到您的 Linux 服务器。现在我们要配置 Git 服务器在远程运行。我们将通过以下命令创建一个 Git 账户来完成这个配置:

ssh username@address
sudo useradd git

然后输入以下命令切换到你新创建的账户:

su git

这一步主要是为了确保你的 Git 本地服务器的安全。使用这个账户,你将成为服务器的管理员。你可以安全地将未来的用户组织到用户组中,并设置预定义的限制和访问级别。

第 3 步:创建 SSH 目录及 在服务器上创建 Git 仓库

Git 服务器安装的下一步是创建一个专用的 SSH 目录来保存我们的 public keys 并在服务器上创建 Git 仓库,提供额外的安全防护和细分的访问权限设置。首先执行以下命令:

ssh git@address
mkdir .ssh
chmod 700 .ssh/
touch .ssh/authorized_keys

使用此命令行限制他人的访问权限后,输入下一行命令以确保你的 SSH 密钥安全存储在 authorized_keys 文件夹,只有你可以访问(仅在你没有以下情况时运行此命令: id_rsa.pub file):

cd .ssh
ssh-keygen -t rsa
cat id_rsa.pub

最后,复制你创建的 SSH 公钥,用它为你的本地 Git 服务器建立新的 SSH 连接并增强安全性:

cd .ssh
vi authorized_keys

第 4 步:创建主目录

在你的 Linux 服务器上,需要创建一个新目录来保存所有 Git 仓库,供你的后续项目使用。你可以了解更多关于 Git 仓库管理的细节。运行这个命令:

mkdir directory_name

第5步:添加你的项目

Git 服务器创建成功!Git 服务器安装和配置都已完成。接下来只需用以下命令添加项目:

cd parent_directory
mkdir new_project.git

然后输入以下命令将远程源添加到本地计算机:

git init --bare
git remote add origin name git@address:new_project.git

最后,执行 Git push 来测试是否一切正常工作:

touch testfile
git add testfile
git commit -m "test file"
git push name master
git clone git@address:new_project.git

恭喜,你已成功在服务器上托管 Git 并创建了 Git 仓库。

FAQ

我可以在没有服务器的情况下托管 Git 吗?

不是。无论服务器用途是什么,你都需要硬件来支撑它。你可以用 GitHub 作为云服务器来托管代码仓库,或者使用我们的 VPS 提供优惠或使用其他第三方托管服务充当服务器。

有没有办法安装带图形界面的 Git 服务器?

可以。虽然 Git 本身不提供 GUI,但有一个独立的 Git GUI 版本供习惯使用图形界面的开发者使用。

Git 有付费计划吗?

Git 一直是、也将永远是自由开源软件,这是其原始开发者和发布者的承诺。你可以在自己的程序开发中使用或改进 Git,而且完全免费。

为什么要自己托管 Git 服务器?

如果你在运行一个小项目,代码库有限,自托管会更私密、更安全。这是主要优势。但随着项目扩大、代码库增多,自托管的效率就开始下降了。

Share

博客更新

Keep reading.

一个金属容器,由发光的霓虹青色线框圆顶保护,容器上显示文章标题和 Cloudzy 徽标,背景为深蓝色。
开发者工具与DevOps

2026 年需要避免的 Docker 安全错误

Docker 可以在生产环境中运行数月,没有任何明显问题。容器启动,应用响应,一切正常。然后一个暴露的端口或一个配置错误的权限就会造成

Rexa CyrusRexa Cyrus 15 min read
一个蓝色发光的3D立方体结构,代表Docker容器,旁边是文本'Portainer vs Yacht: 你应该选择哪个Docker UI',以及Cloudzy标志。
开发者工具与DevOps

Portainer vs Yacht:2026 年应该选择哪款 Docker UI?

通过 CLI 管理 Docker 容器对简单的设置很有效,但扩展性很差。随着容器数量增加,手动追踪状态、日志和更新很容易出错

Rexa CyrusRexa Cyrus 13 min read
持续集成工具
开发者工具与DevOps

2026年优化DevOps工作流的最佳CI/CD工具

软件开发的格局瞬息万变。如果你不想被快速发展的行业甩在后面,应该采用DevOps方法论和敏捷开发实践

Ada LovegoodAda Lovegood 11 min read

Ready to deploy? From $2.48/mo.

独立云服务,始于2008年。AMD EPYC、NVMe,40 Gbps。14天退款保障。