15.Git四種協議-本地協議(local)、HTTP協議、SSH協議、Git協議


1.本地協議(loacl)

  最基本的協議,其遠程倉庫其實就是硬盤內部的一個目錄(例如D:\\project)。常見於團隊內的人對一個共享的文件系統(例如NFS)具有訪問權限,或者多人共用一台電腦的情況。

當搭建好硬盤上面的遠程倉庫之后,可以使用 git clone /d/project 來克隆本地的遠程倉庫。

還可以使用帶file協議的路徑: git clone file:///d/project 克隆本地遠程倉庫。

區別:1.僅指定路徑:Git嘗試使用硬鏈接(hard link)或直接復制所需要的資料;2.使用file://協議,Git觸發用於網絡傳輸資料的進程,效率低,慢。

本地協議的優點:搭建簡單。直接使用了現有的文件權限和網絡訪問權限,如果已經有了共享文件系統,建立版本庫會十分容易,只需要像設置其他共享目錄一樣,將一個Git倉庫放在大家都能夠訪問到的路徑並設置好讀寫權限就可以了。

缺點:不方便從多個位置訪問,例如你在公司的電腦上搭建了本地倉庫,你想在家里訪問就有點困難了。不能保證Git倉庫的安全,由於每一個人都具有倉庫目錄完整的shell權限,沒有方法可以阻止他們刪除或者破壞倉庫。

2.HTTP協議

啞(DUMP)HTTP協議(舊,很少使用了):只支持只讀模式。

智能(smart)HTTP協議(新,GitHub目前就使用了這種協議):支持讀寫模式。既可以像git://協議一樣設置匿名服務,又可以像SSH一樣提供傳輸時的授權和加密,而且只用一個URL就可以

得到git://和SSH的功能,省去了為不同的需求設置不同的URL。 HTTP協議推送(push)以及拉取(pull),服務器都會詢問你的用戶名和密碼。

HTTP協議的優點:不同的訪問方式只需要一個URL,服務器只在需要授權時提示輸入授權信息。

相對於SSH而言,不需要生成SSH秘鑰對再把秘鑰上傳到服務器上。

HTTP/S被廣泛采用,一般的企業防火牆都會允許這些端口的數據通過。

缺點:在一些服務器上,架設HTTP/S協議會比SSH協議棘手一些;每次需要輸入用戶名和密碼,管理這些憑證會比較麻煩一些(當然你可以使用憑證存儲工具,keychain(OSX))。

除此之外沒有別的缺點。

3.SSH協議

  架設Git服務器時常用SSH協議作為傳輸協議,因為大多數環境都支持SSH訪問,即使不支持也比較容易搭建。

$ git clone ssh://user@server/project.git //使用ssh協議clone一個倉庫

優點:1.架設簡單;2.數據傳輸時是安全的(所有數據傳輸時都經過授權和加密);3.高效,和其他3種協議一樣,在傳輸數據時也會盡量壓縮數據。

缺點:不能通過它實現匿名訪問。即使使用者只需要讀取數據,使用者也要有通過SSH訪問你主機的權限,不利於開源項目。

4.Git協議

  包含在Git里的一個特殊的守護進程中,監聽一個特定的端口9418(類似於SSH服務,但是無需任何訪問授權)。

優點:目前是Git所使用的協議里面最快的。如果你的項目不需要為寫進行用戶授權,可以使用Git協議。

缺點:1.缺乏授權機制,一旦放開推送操作,意味着網絡上的任何人都能向你的項目推送代碼;2.架設難。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM