天天看點

建立遠端git倉庫

git倉庫伺服器配置;

兩種方式:

方式一:使用git協定,建立的git倉庫伺服器,隻能下載下傳,不能上傳;

方式二:使用http或https協定,安裝httpd1.6.6以上版本就支援上傳和下載下傳等豐富的功能了;

本次實驗實體機win7,虛拟機是兩台centos7:

本地git倉庫,node1:172.18.11.111

遠端git倉庫,noed2:172.18.11.112

方式圖一:使用git協定建立git遠端倉庫:

在node2:

安裝git-daemon

]# yum -y install git-daemon

初始化一個裸倉庫:名稱為myproject.git

]# cd /var/lib/git/

]# git init --bare myproject.git

]# ls /var/lib/git/myproject.git/

<a href="http://s5.51cto.com/wyfs02/M02/82/EF/wKioL1dmPxOihOLvAAASZbCAxm0256.png" target="_blank"></a>

在node1:

克隆遠端倉庫:

]# git clone git://172.18.11.112/myproject.git

<a href="http://s1.51cto.com/wyfs02/M00/82/EF/wKioL1dmPniAcjAfAAAZfVdT02U761.png" target="_blank"></a>

檢視git檢視配置等資訊:

<a href="http://s4.51cto.com/wyfs02/M02/82/F0/wKiom1dmP7mDwIKmAAA9hLaFlkg557.png" target="_blank"></a>

以上就完成遠端git倉庫的建立和本地下載下傳遠端倉庫了;使用的git協定,不支援推送上傳,要想實作推送要使用http協定;

注意:

git協定建立的伺服器有缺陷:

第一,不支援推送;

第二,不支援認證;

第三,端口很特殊,tcp/9418

方式二:使用http協定進行建立git遠端倉庫:

要基于http協定實作git遠端倉庫,隻有安裝一個http服務即可。

]# yum -y install httpd

對于http協定的git倉庫,要求http協定必須啟動三個子產品:

第一,支援路徑别名;

第二,環境變量設定;

第三,cgi機制;

因為,基于http協定實際是使用poll腳本完成智能設定的;

檢視三個子產品:確定如下三個子產品啟用

<a href="http://s2.51cto.com/wyfs02/M02/82/EF/wKioL1dmQMGiF8LqAAAPwQgwqC0480.png" target="_blank"></a>

建立裸倉庫目錄并授權:

]# mkdir /var/www/git

]# cd /var/www/git

]# git init --bare testproject.git

]# chown -R apache:apache /var/www/git

確定該目錄屬主屬組為apache使用者,否則會沒有寫操作權限;

]# vim /etc/httpd/conf/httpd.conf

#DocumentRoot "/var/www/html"

為提供git倉庫基于http協定實作,建立新的配置檔案:

]# vim /etc/httpd/conf.d/git.conf

<a href="http://s5.51cto.com/wyfs02/M00/82/EF/wKioL1dmQomylwNnAAC5vjg8gj0818.png" target="_blank"></a>

]# httpd -t

]# systemctl start httpd.service

]# ss -tnl 檢視80端口監聽;

回到node1節點,克隆這個基于http協定的遠端git倉庫:

]# cd testproject/

<a href="http://s4.51cto.com/wyfs02/M00/82/F0/wKiom1dmQxbja49xAAAwXQj8D6g141.png" target="_blank"></a>

此時下載下傳倉庫到本地了,如果在這個遠端跟蹤分支上進行更改内容:

]# echo "new line" &gt;  README

]# git add README

]# git commit -m "v0.1"

送出後再上傳到遠端伺服器:

]# git push origin master 

輸入授權的使用者名和密碼即可完成上傳了:

<a href="http://s3.51cto.com/wyfs02/M02/82/F0/wKiom1dmQ_aC_6V6AAAnB2807S8374.png" target="_blank"></a>

以上就是基于http協定建立git遠端倉庫的整個過程,當然配置好http協定的倉庫,再配置https協定的git倉庫,無非就是多了一個步驟配置CA憑證等工作;

使用這種方式進行認證非常不安全,可以做htsps協定方式進行;

把賬号密碼放在檔案裡,也不很妥當,放在網際網路上的公共倉庫時,還可以基于mysql認證,把賬号、密碼放在mysql資料庫表裡;

以上這些自己管理起來都非常麻煩,就出現了網際網路上專門做代碼托管的服務站點。

本文轉自 crystaleone 51CTO部落格,原文連結:http://blog.51cto.com/linsj/1790778,如需轉載請自行聯系原作者

繼續閱讀