在云主机或VPS上搭建私有的GIT仓库技术
我觉得这个是非常重要的事情。如何在自己的私有服务器上架设 GIT 仓库?当一个程序员有了觉悟之后,想做一些事情,总不能一直使用开源的 GIT 仓库吧。
其实,GIT 仓库的搭建非常简单,下面开始搭建 GIT 仓库教程。
看过 GIT 官方文档的人都知道,GIT 的通信协议还支持本地文件协议 file:// ,这样的 GIT 仓库只能在局域网或本地电脑使用,一般很少用到这样的仓库。
所以,我最喜欢的当然是 ssh 通信协议,这个也是绝大多数 GIT 仓库的选择,包括 GITHUB、GITOSC。
首先,我们去看一般的 GITHUB 的 clone 地址,如下所示:
[email protected]: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 [email protected]:/srv/repo/lmlphp.com
上面的 may 是用户名,lmlphp.com 是主机地址,/srv/repo/lmlphp.com 是项目的路径。
如果你的主机的 ssh 端口不是 22,那么上面的命令是不行的,需要指定端口,如下示例:
$ git clone ssh://[email protected]:3306/srv/repo/lmlphp.com
上面的例子将端口修改为 3306,MySQL 的端口,做个示例而已,别当真。
美国的服务器下载特别慢,一般也就是 10kb 左右,但是上传还是蛮快的,有时候达到 1M/s,所以做 GIT 仓库还是没有问题的。有些人喜欢使用 Windows 下的 GIT 客户端,这些客户端有个毛病就是空项目 clone 不下来,需要在创建仓库的时候加上一个文件,使用 git bash 是没有问题的。