众所周知 git 是一个免费、开源的版本控制系统,无论是个人开发还是团队合作,使用 git 来进行代码或文档的版本控制都十分方便而高效。 有很多平台都提供了 git 版本控制的功能,例如 github、bitbucket 等,但有时,我们不可避免的会在代码或文档中加入敏感且不方便公开的信息,此时使用这些公开的云端版本控制平台就会有很大风险,同时,受国内网络质量影响,github 等平台经常遇到无法打开的情况,即便是正常情况下,github 的下载速度也总是不尽如人意的。 综上,如果我们有一个自己的代码版本控制服务器,无论对于个人的代码、文档管理还是对于团队合作上来说,无疑都是非常有价值的。 对于团队开发来说,搭建一套 gitlab 或 bitbucket 是非常方便的,但是,如果是个人开发者,或是三到五个人合作的项目,搭建一个 gitlab 或是付费使用本地 bitbucket,都显得过于奢侈。 是否有办法在一台配置很低的个人服务器上搭建一个属于自己的 git 服务器呢?当然有,本文我们就来详细介绍。 然而,此时你可能又有问题,我并没有一台属于自己的服务器,但是我强烈的希望搭建一个只属于自己的 git 服务,这可以做得到吗?别急,一样是可以做到的,本文后续内容将详细为你解答。
搭建 git 服务器其实没什么难的,因为 git 的设计理念中,远程仓库与本地仓库实际上没有什么不同,他只是一个 7*24 小时开机并可以使所有人可以交换修改的中心服务器罢了,所以本质上,搭建一个远程的 git 服务器与本地常规使用 git 并没有区别。
2.1.1. 安装 git
首先我们需要安装 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.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 就是你的网络地址。
那么问题来了,也许对于大多数人来说,并没有一个服务器来供我们搭建只属于自己的 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 即可,使用起来同样非常方便和易用。
到此这篇git服务器(git服务器搭建)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!版权声明:
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若内容造成侵权、违法违规、事实不符,请将相关资料发送至xkadmin@xkablog.com进行投诉反馈,一经查实,立即处理!
转载请注明出处,原文链接:https://www.xkablog.com/hd-wfwjg/26007.html