LMLPHP后院

在云主机或VPS上搭建私有的GIT仓库技术

maybe yes 发表于 2016-12-25 11:51

我觉得这个是非常重要的事情。如何在自己的私有服务器上架设 GIT 仓库?当一个程序员有了觉悟之后,想做一些事情,总不能一直使用开源的 GIT 仓库吧。

其实,GIT 仓库的搭建非常简单,下面开始搭建 GIT 仓库教程。

看过 GIT 官方文档的人都知道,GIT 的通信协议支持本地文件协议 file:// ,这样的 GIT 仓库只能在局域网或本地电脑使用,一般很少用到这样的仓库。

所以,我最喜欢的当然是 ssh 通信协议,这个也是绝大多数 GIT 仓库的选择,包括 GITHUBGITOSC

首先,我们去看一般的 GITHUB 的 clone 地址,如下所示:

git@github.com:leiminglin/LBlog.git

这个地址会给很多人造成误解,包括我自己。咋一看不知道这个是怎么通信的,最奇葩的是,为什么每个项目的后缀都有一个 .git,这个代表什么意思?。

先不用管它,开始在我们的 VPS 上创建一个私有库吧!

创建私有库的前提是,需要安装 GIT 客户端,一般的 Linux 都自带了,只是版本低了一点,没有关系。

$ git init --bare lmlphp.com

hint: Using 'master' as the name for the initial branch. This default branch name
hint: is subject to change. To configure the initial branch name to use in all
hint: of your new repositories, which will suppress this warning, call:
hint: 
hint: 	git config --global init.defaultBranch <name>
hint: 
hint: Names commonly chosen instead of 'master' are 'main', 'trunk' and
hint: 'development'. The just-created branch can be renamed via this command:
hint: 
hint: 	git branch -m <name>

是不是超级简单,这个事情就完成了, --bare 参数代表创建一个空的仓库。我一般习惯将项目名对应域名,这样一看就明白了。熟练了 GIT 操作的人一定会明白,GIT 命令设计很多都是通过参数来改变行为的,也就是说 GIT 本身的命令并不多,但是很多完全不同的功能是通过指定参数来实现的。上面的命令会在当前目录下创建一个 lmlphp.com 文件夹,文件夹里面有 GIT 仓库初始化的一些文件夹,这个就是 GIT 仓库。在 GIT 仓库里面有部分 GIT 命令是不能使用的,比如 git status,如下示例:

$ git status
fatal: This operation must be run in a work tree

接下来,我们需要 clone 远程的空项目到自己的电脑上。如下示例:

$ git clone may@lmlphp.com:/srv/repo/lmlphp.com

上面的 may 是用户名,lmlphp.com 是主机地址,/srv/repo/lmlphp.com 是项目的路径。

如果你的主机的 ssh 端口不是 22,那么上面的命令是不行的,需要指定端口,如下示例:

$ git clone ssh://may@lmlphp.com:3306/srv/repo/lmlphp.com

上面的例子将端口修改为 3306,MySQL 的端口,做个示例而已,别当真。

美国的服务器下载特别慢,一般也就是 10kb 左右,但是上传还是蛮快的,有时候达到 1M/s,所以做 GIT 仓库还是没有问题的。有些人喜欢使用 Windows 下的 GIT 客户端,这些客户端有个毛病就是空项目 clone 不下来,需要在创建仓库的时候加上一个文件,使用 git bash 是没有问题的。

相关文章
2024-03-29 06:15:14 1711664114 0.013539