git 伺服器搭建 協議概念

2022-06-20 12:57:17 字數 2019 閱讀 3198

現在開發過程中,很多的實現某一些功能的工具,都是類似的伺服器-客戶端結構,即c-s架構,例如訊息佇列的kafka,檔案儲存的easticsearch,包括我們日常工作中的資料庫,他都是一種c-s架構,其本質上來說都是一種

儲存-讀取的操作,只是在很多時候,b端不僅僅實現了單一的儲存功能,例如kafka實現了訊息推送的功能,而git簡單來說就像乙個公有的儲存倉庫,給通過認證的人來管理他們檔案(一般來說指的是**檔案),最為重要的是

它提供了一些對比檔案差異,建立分支,**提交等等功能.這裡說的是git伺服器端的搭建

一.協議-任何檔案傳輸都離不開協議

git主要有四種協議:本地協議(local),http協議,ssh(secureshell)協議以及git協議

1.本地協議-本地作為倉庫,拉去的時候運用的是拷貝功能

最基本的是本地協議,其中遠端版本庫就是硬碟中的另乙個目錄,這常見於團隊中每乙個成員都對乙個共享的檔案系統擁有訪問權,或者比較少見的人共用同一臺電腦的情況下

如果你實用共享檔案系統就可以從本地版本庫clone,push,pull

$ git clone /opt/git/project.git

$ git clone file:///opt/git/project.git

如果url開頭明確指定file://,那麼git的行為會略有不同,如果是指定路徑,git會嘗試實用硬鏈結(hard link)或者直接複製所需要的檔案,指定file://的主要目的是取得乙個沒有外部參考或物件的乾淨庫服版本

通常是在其他版本控制系統匯入後或者一些類似情況才需要這麼做

要增加乙個本地版本庫到現在的git專案,可以執行如下命令 $ git remoge add local_proj /opt/git/project.git

優點:簡單,世界實用了現有的檔案呢許可權和網路訪問許可權

缺點:共享檔案系統比較難配置,並且比起基本的網路連線訪問,這不方便從多個位置訪問,而且這個協議並不保護倉庫避免意外的損壞,每乙個使用者都有遠端目錄的完成shell許可權,沒有方法可以阻止他們修改或刪除git內部檔案和 損壞倉庫

2.http協議:

只需要吧乙個羅版本庫放在http根目錄,設定乙個post-update的掛鉤就可以了,此時,只要能訪問web伺服器上你的版本庫,就可以轉殖你的版本庫,下面是設定http訪問版本庫的方法

$ cd /var/www/htdocs/

$ git clone --bare /path/to/git_project gitproject.git

$ cd gitproject.git

$ mv hooks/post-update.sample hooks/post-update

$ chmod a+x hooks/post-update   

然後就可以通過如下的命令來clone了,$ git clone 

有點:可用性,相對於ssh協議,可以使用使用者名稱/密碼授權是乙個很大的優勢,這樣使用者就不需要在使用git之前在本地生成ssh秘鑰對再把公鑰上上傳到伺服器

缺點:在一些伺服器上,架設hhtp協議比較棘手,且如果在http上使用需授權的推送,管理憑證會比使用ssh秘鑰認證麻煩一些

3.ssh協議

架設git伺服器通常使用ssh協議作為傳輸協議,因為大多數環境下伺服器已經支援通過ssh訪問,即使沒有也比較容易架設,ssh協議也是乙個驗證授權的網路協議,

並且因為其不變形,架構和使用都比較簡單

通過ssh協議轉殖版本庫: $git clone ssh://user@server/project.git

有點:比較容易架設

缺點:不能通過他實現寧明訪問,即使只是讀取資料,使用者也要通過ssh訪問你的主機的許可權,這使得ssh協議不利於開源的專案

4.git協議

這是 git裡的乙個特殊的守護程序,他監聽在乙個特定的埠9418,類似於ssh服務,但是無需任何授權,

有點:傳輸比較快

缺點:缺乏授權機制

Git 搭建Git伺服器 本地協議伺服器

centos 7 x64 在終端下執行下面命令來檢查系統是否安裝git git version如果返回 git 未找到命令 則需要安裝git。執行下面命令安裝git和nfs sudo yum install y git nfs utils首先要先建立共享的資料夾 也可用已存在的 sudo mkdir...

Git協議 伺服器的搭建

git 伺服器的搭建 遠端倉庫通常只是乙個純倉庫 bare repository 乙個沒有當前工作目錄的倉庫。因為該倉庫只是乙個合作媒介,所以不需要從乙個處於已從硬碟上檢出狀態的快照 倉庫裡僅僅是git的資料。更簡單的說,純倉庫是你的專案裡的.git內容。開始架設git伺服器的時候,需要把乙個現存的...

Git 搭建git伺服器

環境 ubuntu16.4 1.以root使用者登陸linux後台,執行下面的命令安裝git apt install git2.建立git使用者 adduser git3.建立倉庫目錄 su git mkdir p repository myself.git4.初始化倉庫 cd repository...