Pro Git 笔记(3)

Pro Git 笔记(3)

第 4 章 Git 服务器

协议

本地协议(最基本的传输协议)

远程仓库是磁盘上的另一个目录。

优点

基于文件的仓库简单易用,可以使用已有的文件权限和网络访问权限。

缺点

共享文件系统不易设置,很难让本地网络以外的用户访问到。

HTTP 协议

智能 HTTP 协议

与 SSH 协议或 Git 协议的运作方式很类似,但使用的是标准的 HTTP/S 端口通信,可以使用 HTTP 协议的各种身份验证机制。 可以像 SSH 一样在用户推送数据时启用用户验证,加密传输数据。可以对想向仓库推送或只读权限的用户要求身份验证。

非智能 HTTP 协议

在服务端没有智能协议时降级使用。

在这种协议中,服务器把裸仓库作为普通的文件传输给用户。优点是易于架设和配置。基本上你要做的就是把裸仓库放在 HTTP 服务器根目录,然后设置一个特定的 post-update 钩子函数就可以了。

优点(智能 HTTP协议)
  • 仅在需要身份验证时服务器才提示输入用户信息;
  • 相较于 SSH 协议,能够使用用户名和密码验证;
  • 速度快,传输效率高;
  • 应用广泛,一般不会被集团防火墙阻止;
  • 允许匿名访问。
缺点

在某些服务器上比较难搭建。

SSH 协议

通过 SSH 克隆仓库时,URL 以 ssh:// 开头(我们 Android 课设用的 git 服务器是老师自己搭的,用的应该就是 SSH 协议)。

git clone ssh://user@server/project.git
优点
  • 易于配置且应用广泛
  • 保证访问安全,所有数据传输加密,并且经过了身份认证;
  • 效率高。
缺点

无法匿名访问。

Git 协议

它是 Git 自带的一种特殊守护进程,专门监听 9418 端口,提供类似 SSH 协议的服务,但不提供任何的身份验证方式,要允许某个仓库通过 Git 协议提供服务,必须要在仓库中创建 git-daemon-export-ok 文件。通过这种方式提供的服务没有任何安全机制。

优点

最快

缺点
  • 缺少用户验证
  • 最难设置
  • 容易被大型公司的防火墙系统阻止访问

在服务器上搭建 Git

第一步

把已有仓库导出成新的裸仓库。(–bare 参数)

git clone --bare my_project my_project.git

第二步

把裸仓库放置在服务器上。(可以通过 FileZilla 复制上去)

以后其他用户就可以这样克隆仓库了

git clone my_project.git user@git.example.com:/srv/git/my_project.git

如果执行 git init 时添加了 _–shared_参数,Git 会自动为用户组赋予仓库的写权限(不过我没有加这个参数好像也能写,不知道是不是用的 root 用户的原因)。

基本完成 Git 服务器的搭建,后面的内容感觉比较复杂而且搭建Git 服务器用的很少就没看…..

打赏一个呗

取消

感谢您的支持,我会继续努力的!

扫码支持
扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦