震惊!原来搭建自己的 git 服务这样简单,甚至不需要一台服务器

1. 引言

众所周知 git 是一个免费、开源的版本控制系统,无论是个人开发还是团队合作,使用 git 来进行代码或文档的版本控制都十分方便而高效。
有很多平台都提供了 git 版本控制的功能,例如 github、bitbucket 等,但有时,我们不可避免的会在代码或文档中加入敏感且不方便公开的信息,此时使用这些公开的云端版本控制平台就会有很大风险,同时,受国内网络质量影响,github 等平台经常遇到无法打开的情况,即便是正常情况下,github 的下载速度也总是不尽如人意的。
综上,如果我们有一个自己的代码版本控制服务器,无论对于个人的代码、文档管理还是对于团队合作上来说,无疑都是非常有价值的。
对于团队开发来说,搭建一套 gitlab 或 bitbucket 是非常方便的,但是,如果是个人开发者,或是三到五个人合作的项目,搭建一个 gitlab 或是付费使用本地 bitbucket,都显得过于奢侈。
是否有办法在一台配置很低的个人服务器上搭建一个属于自己的 git 服务器呢?当然有,本文我们就来详细介绍。
然而,此时你可能又有问题,我并没有一台属于自己的服务器,但是我强烈的希望搭建一个只属于自己的 git 服务,这可以做得到吗?别急,一样是可以做到的,本文后续内容将详细为你解答。

2. 在 linux 服务器上搭建 git 服务器

搭建 git 服务器其实没什么难的,因为 git 的设计理念中,远程仓库与本地仓库实际上没有什么不同,他只是一个 7*24 小时开机并可以使所有人可以交换修改的中心服务器罢了,所以本质上,搭建一个远程的 git 服务器与本地常规使用 git 并没有区别。

2.1. 准备步骤

2.1.1. 安装 git

首先我们需要安装 git:

  • 在 ubuntu 系统中,你可以执行:apt install git
  • 在 centos 系统中,你可以执行:yum install git
  • 你也可以通过官网下载源码包编译安装

2.1.2. 创建 git 用户

创建 git 用户并不是必须的,但我们最好使用专门的用户来统一管理所有的公钥(/home/git/.ssh/authorized_keys)
执行:

adduser git

2.1.3. 禁用 git 用户登录

出于安全性考虑,通常我们会禁用掉 git 用的 shell 登录,这可以通过编辑 /etc/passwd 文件来实现。
将 git 用户所在行修改为:

git:x:1001:1001:,,,:/home/git

每当我们需要使用 git 时,我们可以让 root 用户通过 su 命令切换为 git 用户,但任何人都不可以通过 ssh 登录 git 用户。

2.2. 创建仓库并使用

2.2.1. 创建仓库

执行下面的命令,就可以创建一个仓库 sample.git,通常我们会在 git 用户的 home 目录中执行:

git init —bare sample.git

此时我们可以看到一个目录 sample.git。

2.2.2. 使用远程仓库

如果在同一个机器上,我们可以直接通过全路径来使用:

git clone /home/git/sample.git

如果是外网通过网络访问,那么可以通过网络地址来访问:

git clone git@hostname:sample.git

hostname 就是你的网络地址。

3. 使用云盘搭建 git 服务

那么问题来了,也许对于大多数人来说,并没有一个服务器来供我们搭建只属于自己的 git 服务器,那是不是就没办法搭建一个随时随地都可用且只属于个人的 git 服务了么?答案当然不是。
随着网络时代的到来,市面上有着很多值得依赖的同步网盘服务,他们会自动进行同步,以使云上的所有文件与本地文件保持实时同步,这里就不列举了,如果有跨平台需求,那么可以使用微软的 onedrive。

上图展示了通过云盘与 git 搭建远程 git 服务的架构,由于这种模式通常只是一个人自己使用,因此不需要考虑同步到云盘发生冲突的问题。
实际搭建方法也很简单,我们选取一个同步目录(例如:C:/Users/techlog/OneDrive/Workspace/git),在这个目录中执行:

git init —bare sample.git

如果要使用仓库中的数据,只需要执行:

git clone C:/Users/techlog/OneDrive/Workspace/git/sample.git

这样我们就创建了一个远程 git 仓库,同步盘会自动同步该目录的任何变更,当我们使用其他设备时,只需要先登录同步盘,然后将具体的路径作为远程 url 即可,使用起来同样非常方便和易用。

4. 微信公众号

欢迎关注微信公众号,以技术为主,涉及历史、人文等多领域的学习与感悟,每周三到七篇推文,全部原创,只有干货没有鸡汤。

震惊!原来搭建自己的 git 服务这样简单,甚至不需要一台服务器》来自互联网,仅为收藏学习,如侵权请联系删除。本文URL:https://www.hashtobe.com/865.html