侧边栏壁纸
博主头像
站长破壁者博客

站长破壁者 · 每一步,都是为站长而破

  • 累计撰写 99 篇文章
  • 累计创建 20 个标签
  • 累计收到 0 条评论

目 录CONTENT

文章目录

在VPS服务器上搭建私人仓库

FLC
FLC
2026-01-16 / 0 评论 / 0 点赞 / 3 阅读 / 0 字

1、引言

Git是一个分布式版本控制系统,由Linus Torvalds于2005年开发。它能够快速高效地处理从小型到大型项目的所有版本管理需求。由于其分布式的特性,每个开发者都拥有完整的代码库历史,这意味着即使没有服务器,开发者之间也能进行协作。

1.1为什么要搭建私人 Git 服务器?

使用公共Git托管服务非常方便,但有些企业或个人开发者可能会考虑搭建自己的Git服务器,主要出于以下原因:

  • 数据隐私:保证源代码和版本历史只存储在内部网络中,减少外部泄露的风险。

  • 定制化需求:可以根据自身需求定制服务器配置和工作流程。

  • 成本:对于大规模项目或私有项目,搭建自己的服务器可能比长期付费使用公共服务更划算。

2、准备工作

在开始搭建之前,你需要确保有一个适合的环境。以下是一些推荐的配置:

  • 操作系统:大多数情况下,建议使用 Linux 发行版(如 Ubuntu、CentOS)。当然,Windows 和 macOS 也可以,但配置可能稍有不同。

  • 硬件要求:普通的项目管理中,一个最低配的 VPS(1-2GB RAM,1-2核CPU)通常足够。如果管理多个大项目或有高并发需求,建议使用更高配的服务器。

  • 网络要求:确保服务器有一个静态IP地址,以便开发者能够稳定地访问。

具体情况依照你手头的设备而定,如果你手上有云服务器,就使用云服务器进行配置。如果家里有公网 IP,也可以在家用家用服务器进行配置。建议大家使用云服务器,不仅仅可以拿来搭建 Git,还可以搭建个人网站,做测试,等等,我这边推荐和推荐几个海外便宜的云服务器VPS厂商VMRackdmit

3、安装和配置服务器 Git

3.1在不同系统上安装 Git

在不同操作系统上安装 Git 的方法略有不同,这里介绍 Linux 和 Windows 的安装方法。

3.1.1、切换 root 账户

建议在操作之前先切换至 root 账户

su root

如果不切换账户,请在下列指令前添加 sudo 提权

3.1.2、在 Ubuntu 安装 Git

在 Linux 上安装 Git(以 Ubuntu 为例):

apt update
apt install git

3.1.3、在 CentOS 安装 Git

在 CentOS 上安装 Git:

yum update
yum install git

3.1.4、在 Windows 安装 Git

在 Windows 上安装 Git:

  1. 前往 Git for Windows 官网下载安装包。

  2. 运行安装程序,按照向导进行安装。

  3. 安装完成后,可以使用 Git Bash 进行 Git 操作。

3.1.5、查看安装版本

安装成功后,可以看一下自己安装的版本

git --version

3.2意外问题

我在使用阿里云服务器的时候安装 git 时遇到 yum 源安装软件安装失败问题,如果你也遇到相同问题可以停下来看看,如果没遇到,可以跳过本节。

在输入安装 git 命令后,安装失败

yum install git

如果你也出现相同问题,可以查看 yum 配置。

vim /etc/yum.repos.d/docker-ce.repo

打开后是这个样子的,发现第四行,enabled=1,其他都是0,将其改为0。

如果不熟悉 VIM 操作,可以跟着我操作,如果熟悉操作请跳过

  1. 将键盘调至英文输入,以下操作都是英文输入下进行

  2. i 键进入输入模式,移动光标至需要修改的地方修改

  3. 修改完成后按 ESC 键退出输入模式

  4. : 键 (shift + ;),输入 wq 保存退出

完成上述步骤后输入下载指令,应该就能成功下载了

yum --disablerepo=docker install git

3.3创建 git 用户

为了安全起见,我们通常会为 Git 操作创建一个专用的用户。这个账户只做 Git 私服的操作

创建一个名为 git 用户

adduser git

git 用户设置一个密码

passwd git

然后输入你要设置的密码,值得注意的是,为了安全,Linux 系统在输入密码的时候是不回显的。尽量将密码复杂度设置的高一些,我这里为了方便演示,将密码设置为 123456 。

3.4、设置 git 账户,部署仓库

3.4.1、切换用户

切换至刚刚创建的 git 用户

su - git

如果你刚刚添加的用户名是别的名字,就把 git 改成你刚刚添加的自定义用户名。

你也可以使用 whoami 指令确认一下是不是已经切换成功,root 用户切换成其他 用户不需要输入密码,其次,可以输入指令 pwd 指令确认一下是不是已经处在 git 家目录中,如果不在 可以输入指令 cd /home/git 进入 git 家目录。

3.4.2、创建仓库目录

我们可以看一下 GitHub 中 Linux 项目的仓库路径

git@github.com:torvalds/linux.git

我们可以看到大厂的命名规范,torvalds 是发布 linux 仓库的主账户名,linux.git 是仓库名称。

例如,我的取名为 Lenyiin ,大家也可以根据自己喜好命名

mkdir Lenyiin

进入 Lenyiin 目录中

cd Lenyiin

在这个目录下,大家就可以随意创建自己的仓库了

例如,我创建一个图片仓库,一个博客仓库

mkdir image.git
mkdir blog.git

3.4.3、初始化仓库

以 blog.git 仓库为例,其他仓库也是同样操作

cd blog.git
git init --bare

此时,我们的服务器仓库就成功部署完成,是不是非常简单!
 ㅤ   

4、客户端连接远程仓库

解下来我将使用 Linux 和 Windows 分别演示如何连接远端仓库

4.1、Linux 连接远端仓库

在另一台 Linux 机器上创建你想放置放库的目录,如我就创建一个 blog 文件夹,放置刚刚创建的 blog.git

创建文件,你可以自定义命名

mkdir blog

进入目录中**

cd blog

初始化客户端仓库

git init

此时,客户端也配置好了,我们可以随便在仓库里写一点内容来测试一下

在仓库目录下创建 hello.txt 文件,并写入 hello Lenyiin

touch hello.txt
echo "hello Lenyiin" > hello.txt 

将新修改的内容添加到 git 版本管理中,并添加描述

git add hello.txt 
git commit -m "第一次提交"

将本地仓库推送至远端服务器

以我为例,我的远端服务器公网 IP“20.2.71.4” ,你在推送的时候请将 IP 地址替换上来

git remote add origin git@20.2.71.4:Lenyiin/blog.git
git push -u origin master

第一次推送到远端仓库的时候会询问你是否继续,输入 yes ,解下来,他会要求你输入密码,请输入你刚刚创建 git 用户时候设置的密码,密码输入过程无回显,按回车确认。至此,本地仓库推送到远端仓库讲解完毕!

4.2、域名解析

上面的操作已经可以让你的客户端机器免密登录到服务器了,如果你手上有域名,或者想买个域名,更方便的使用,可以接着往下看,如果不想使用域名,可以跳过本节,直接看 Windows 连接客户端操作。

进入域名厂商的控制台,如果在VMRack买的就进入VMRack控制台,如果是在dmit买的就进入dmit的控制台。点击域名解析管理,点击添加记录

例如我想将我的域名 lenyiin.cn 设置为仓库主域名,记录类型选择 A,主机记录填 @,记录值填你服务器的 IP地址,确认。如果你想设置二级域名解析,可以将主机记录修改成你自定义的二级域名。

此时,域名解析设置完成。

4.3、Windows 连接远端仓库

相信你在第三节已经完成了 Git 的安装,选择一个你想要存放你的仓库的盘符下,右键鼠标,在出现的菜单栏中点击 “open git bush here” ,输入 clone 指令,即可将远端仓库克隆到本地。

git clone git@lenyiin.cn:Lenyiin/blog.git

没有域名就使用 IP 地址

git clone git@20.2.71.4:Lenyiin/blog.git

我们在 hello.txt 里增加 “windows over!!!” 并在 Windows 上推送到远端服务器

git add .
git commit -m "第二次修改"
git push

我们登录另一台 Linux 客户端拉取最新仓库

在客户端的仓库目录下,输入指令,拉取远端仓库内容。发现内容成功更新。

git pull

至此,客户端连接服务器部分讲解完毕!

5、迁移仓库

如果云服务器过期了,我想迁移到另一台特价打折的服务器上呢?

  1. 在服务器端,只需在新的机器上创建 git 用户,并设置密码,将仓库文件内容复制到新服务器家目录里即可。

  2. 在客户端,进入仓库根目录,进入 .git 目录下,打开 config 文件,将旧服务器 IP 地址修改至新 IP 地址。对于设置免密的,还需要将公钥追加进新服务器的 authorized_keys 中。

cd /home/git/blog.git/.git/
vim config

6、搭建 Git 服务器的进阶选项

基本上走完上述流程,你已经完成了基本的 git 的搭建和使用。你还可以进阶一下操作,让你的 git 更完备。这部分内容我只是简单说一下,具体操作我就不往下贴了。

6.1、使用Git自带的 git daemon

Git 内置了一个简易的服务器,称为git daemon,它可以快速启动一个Git服务器供其他人克隆和推送。

6.2、Hooks

Git 提供了一套钩子(hooks)机制,可以在特定事件发生时触发特定的脚本。例如,你可以设置一个post-receive钩子,在每次接收到新的代码时自动部署它。

配置示例: 在blog.git/hooks/目录下创建一个post-receive文件,并赋予执行权限:

#!/bin/sh
GIT_WORK_TREE=/path/to/deploy git checkout -f

这将会在每次推送代码后,将代码部署到指定的目录。

6.3、使用 Gitolite 管理权限

Gitolite 是一个 Git 服务器的管理工具,可以帮助你方便地管理多个仓库和用户的访问权限。

安装和配置 Gitolite:

sudo apt-get install gitolite3
sudo -H -u git gl-setup /path/to/your/admin.pub

然后,你可以通过编辑配置文件来管理用户和仓库的权限。

6.4、搭建 Web 界面(如 GitWeb 或 Gitea)

有时候,我们希望能够通过 Web 浏览器查看代码仓库。GitWeb 和 Gitea 是两种常见的 Web 界面工具。

安装 Gitea

wget -O gitea https://dl.gitea.io/gitea/1.14.0/gitea-1.14.0-linux-amd64
chmod +x gitea
./gitea web

Gitea 是一个轻量级的Git服务器自托管解决方案,带有简洁的 Web 界面,类似于 GitHub。

6.5、设置自动备份

为了防止数据丢失,设置自动备份是非常重要的。可以使用 cron 任务定期备份 Git 仓库。

配置备份脚本: 创建一个简单的备份脚本 backup.sh

#!/bin/bash
tar -czf /backup/git-backup-$(date +\%F).tar.gz /home/git/

然后将其添加到 cron 任务中:

0 3 * * * /path/to/backup.sh

这将会每天凌晨3点自动备份所有 Git 仓库。

7维护与管理

7.1、服务器的日常维护

  • 定期更新:确保操作系统和 Git 软件处于最新版本,以避免安全漏洞。

  • 日志检查:定期检查 /var/log 中的日志文件,了解服务器的运行状态。

7.2、日志与监控

  • 访问日志:通过配置SSH日志,可以查看谁何时访问了服务器。

  • 监控工具:如使用Nagios、Prometheus 等工具监控服务器状态和资源消耗。

7.3、升级与备份

  • 升级 Git:定期使用包管理器或源码编译的方式升级 Git。

  • 数据备份:不仅仅备份 Git 仓库本身,还要备份服务器的配置文件等重要数据。 ㅤ   

8总结

搭建一个 Git 私人服务器,虽然需要一些时间和精力,但能够提供更高的定制化和安全性。通过本文的指南,你可以从零开始搭建一个属于自己的Git服务器,并根据实际需求进行扩展和管理。无论是小型团队合作,还是企业级的版本控制需求,这样一个自主可控的解决方案都能为你的开发工作带来巨大的便利。

0

评论区