git分布式的理解----簡單服務端搭建


  Git是分布式的,並沒有服務端跟客戶端之分,所謂的服務端安裝的其實也是git。Git支持四種協議,file,ssh,git,http。ssh是使用較多的,下面使用ssh搭建一個免密碼登錄的服務端。

  1、提前安裝git跟sshserver;

  2、 創建一個用戶,用來運行git服務;

  新建一個用戶,叫gituser,然后切換到gituser的默認目錄,創建一個叫.ssh的文件夾,並在其中創建一個叫authorized_keys的文件,這個文件將用於存儲git開發者的ssh公鑰。

  

  3、建立一個git倉庫;

  切換到gituser默認目錄,建立一個testgit文件夾,在其中創建一個用於測試的git項目並進行初始化。

  

  創建一個aaa.txt,內容隨便填寫,將該文件納入git管理

  

  4、創建證書

  切換到git開發者電腦。設置本地git用戶並創建公鑰和私鑰

  

  Windows系統,在用戶主目錄下有id_rsa.pub跟id_rsa兩個文件:

  

  

  這兩個就是一對秘鑰,id_rsa是私鑰,id_rsa.pub是公鑰。

  5、添加公鑰到ssh  

  將本地生成的id_rsa.pub的內容追加到git服務器gituser用戶的~/.ssh/authorized_keys文件中。注意,不是把authorized_keys建成文件夾,把公鑰扔進去,是追加文件內容。

  特別要注意:.ssh的權限必須是700,authorized_keys文件的權限必須是600,否則公鑰無法生效。

  6、修改ssh服務端配置

  vi /etc/ssh/sshd_config

  

  7、從服務端clone項目

  在開發者電腦端,執行以下命令:

  

  可以看到我們成功把“服務器”上的git項目clone到了本地。

  ------------------------------------------------------------------------------------------------------------

  其實,上面的操作有些繁瑣:在“服務端”建一個git項目,然后初始化,然后建一個可以免密碼登錄的用戶,然后用這個賬號把git項目拷貝了下來;簡單來說,我不免密碼登錄,也可以git clone那個項目,比如我用root用戶:

  

  也就是說,只要“服務端”有git項目,有一個可以遠程登錄的ssh用戶,我們就可以直接git clone 那個項目,這個時候,“服務端”跟“客戶端”都只要git,沒有所謂的gitlab等服務端軟件,兩者之間只是通過ssh通信就可以實現git的clone,commit等操作,兩者地位是平等的。

  可見git的確是無中心的分布式的。而github,gitlab之類的“服務端”其實是一個幫助我們管理用戶跟git通信方式的工具,在這一點上,gitlab跟visualsvn-server之類的軟件有本質的區別。

  ------------------------------------------------------------------------------------------------------------


免責聲明!

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



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