Git使用协议总结

服务器上的Git

建立一个大家都可以访问的共享仓库,从那里推送和拉取数据。我将把仓库Git 器”;代理一个Git 仓库只需要花很少的源,几乎从不需要整个服器来支持它的运行。

一个Git 器不。第一选择与服器通协议

仓库通常只是一个纯仓库(bare repository) ——一个没有当前工作目仓库为该仓库只是一个合作媒介,所以不需要从一个于已从硬出状的快照;仓库仅仅Git 的数据。简单纯仓库是你目里.git 的内容,无他物

 

协议

Git 可以使用四主要的协议传输数据:本地传输SSH 协议Git 协议HTTP 协议。除了HTTP 协议之外,其他所有协议都要求在服器端安装并运Git

 

本地协议

最基的就是本地协议(Local protocol) 了,仓库该协议中就是硬上的另一个团队每一个成一个共享的文件系(例如NFS )访问权,抑或的多人共用同一台电脑

 

如果你使用一个共享的文件系如果你在URL开头明确的使用file:// ,那Git 会以一略微不同的方式运行。如果你只出路径,Git 尝试使用硬接或者直接制它需要的文件。如果使用了file:// Git用它平传输数据的工序,而这种方式的效率相很低。使file:// 的主要原因是当你需要一个不包含无引用或象的干净仓库副本的

——一般是从其他版本控制系入之后或者似的情形(参9章的维护)。我们这里使用普通路径,因通常这样总是更快

 

要添加一个本地仓库Git 工程,运行如下命令:

$ git remote add local_proj /opt/git/project.git

 

优点

基于文件仓库点在于它的简单,同保留了存文件的限和网络访问权限。如果你

团队有一个全体共享的文件系,建立仓库就十分容易了。你只需把一份纯仓库的副

本放在大家能访问的地方,然后像其他共享目样设限就可以了。

缺点

这种方法的缺点是,与基本的网络连访问相比,能从不同的位置访问的共享以架

。另一个很重要的问题方法不一定就是最快的,尤其是于共享挂的文件系

 

SSH 协议

Git 使用的传输协议中最常的可能就是SSH 了。是因大多数境已支持通

SSH 器的访问——即使没有,也很容易架SSH 也是唯一一个同便于和写操

作的网络协议。另外两个网络协议HTTP Git)通常都是只行写操作时还是需要SSHSSH 也是一个验证的网络协议;而因其普遍性,通常也很容易架和使用。

SSH 克隆一个Git 仓库,你可以像下面这样给ssh:// URL

$ git clone ssh://user@server:project.git

或者不指明某个协议——这时Git 会默使用SSH

$ git clone user@server:project.git

也可以不指明用Git 会默使用你当前登的用

 

优点

使用SSH 的好有很多。首先,如果你想络仓库的写限,基本上不可能不使

SSH。其次,SSH 较简单—— SSH 护进程很常见。再次,通SSH 访

是安全的——所有数据传输都是加密和授的。最后,Git 和本地协议SSH 很高

效,会在传输之前尽可能的压缩数据

 

缺点

SSH 的限制在于你不能通实现仓库的匿名访问。即使仅为读取数据,人也必在能

SSH 访问主机的前提下才访问仓库使得SSH 不利于源的目。如果你仅仅

公司网里使用,SSH 可能是你唯一需要使用的协议

 

Git 协议

个包含在Git 件包中的特殊守护进程; 它会听一个提似于SSH 的特定端口(9418),而无需任何授。用Git 协议营仓库,你需要git-export-daemon-ok 文件——它是协议进程提供仓库的必要条件——但除此之没有什安全措施。要所有人都能克隆Git 仓库,要么谁也不能。也意味着该协议通常不能用来行推送。你可以允推送操作;然而由于没有授机制,一旦允许该操作,网上任何一个知道URL 的人将都有推送

 

优点

Git 协议存最快的传输协议。如果你在提供一个有很大访问量的公共目,或者一

个不需要对读操作行授目,架一个Git 护进程来供应仓库是个不

。它使用与SSH 协议相同的数据传输机制,但省去了加密和授开销

缺点

Git 协议消极的一面是缺少授机制。用Git 协议为访问项目的唯一方法通常是不可

取的。一般做法是,同提供SSH 接口,几个开发有推送(写)限,其他人通

git:// 有只读权限。Git 协议可能也是最协议。它要求有独的守护进程,需

要定制

 

HTTP/S 协议

HTTP HTTPS 协议美之在于架便性。基本上, 只需要把Git 纯仓库文件放在HTTP 的文件根目下,配置一个特定的post-update hook),就搞定了

 

Git post-update 会默运行合适的命令(git updateserver-info)来确保通HTTP 取和克隆正常工作。条命令在你用SSH 仓库推送内容运行;之后,其他人就可以用下面的命令来克隆仓库$ git clone http://example.com/gitproject.git

 

优点

使用HTTP 协议的好是易于架。几条必要的命令就可以全世界取到仓库的内容。

几分HTTP 协议不会占用多服源。因它一般只用到静HTTP

提供所有的数据,普通的Apache 器平均秒能供数千个文件——哪怕是一个小

型的服器超都很

 

缺点

HTTP 协议的消极面在于,相端效率更低。克隆或者下载仓库内容可能会花

更多时间而且HTTP 传输的体和网络开销比其他任何一个协议

 

猜你喜欢

转载自aoyouzi.iteye.com/blog/1976755
今日推荐