阿里云Linux-CentOS系統(tǒng)下-搭建Git服務(wù)器
步驟總結(jié):
1. 安裝git
首先確認(rèn)服務(wù)器是否安裝Git
在Xshell中輸入命令:$ rpm -qa git
結(jié)果如下表示已經(jīng)安裝:
如果未安裝就安裝git
在Xshell中輸入:$ yum install git
2. 創(chuàng)建一個(gè)git用戶,用來(lái)運(yùn)行g(shù)it服務(wù):
在Xshell中輸入:$ sudo adduser git
此時(shí)在阿里云服務(wù)器的根目錄:/home文件夾下新增一個(gè)文件夾git
按這個(gè)層級(jí)建立文件用于存放客戶端用戶的公鑰:/home/git/.ssh/authorized_keys
在本地客戶端的git bash中通過(guò)命令:
$ ssh-keygen -t rsa -C"[email protected]"
或
$ ssh-keygen
命令生成公鑰,默認(rèn)在c盤:用戶/.ssh中id_rsa.pub文件是公鑰,用記事本打開(kāi)復(fù)制粘貼到服器的/home/git/.ssh/authorized_keys文件中即可。
3. 服務(wù)器中建立git倉(cāng)庫(kù)
自己在服務(wù)器根目錄新建一個(gè)專門用于存放倉(cāng)庫(kù)的git文件夾
通過(guò)如下代碼創(chuàng)建并初始化倉(cāng)庫(kù),此時(shí)是以個(gè)空倉(cāng)庫(kù):
$ sudo chown -R git:git sample.git
下一步代碼必須執(zhí)行一次,可能是獲取推送權(quán)限并防止用戶修改工作區(qū),如果不執(zhí)行的話無(wú)法從本地推送到git服務(wù)器:
$ sudo chown -R git:git sample.git
4. 禁止git用戶登錄shell
出于安全考慮,創(chuàng)建的git用戶不允許登錄shell,這可以通過(guò)編輯/etc/passwd文件完成。找到類似下面的一行:
git:x:1001:1001:,,,:/home/git:/bin/bash
改為:
git:x:1001:1001:,,,:/home/git:/usr/bin/git-shell
這樣,git用戶可以正常通過(guò)ssh使用git,但無(wú)法登錄shell,因?yàn)槲覀優(yōu)間it用戶指定的git-shell每次一登錄就自動(dòng)退出。
5. 克隆git服務(wù)器上建立的sample.git倉(cāng)庫(kù)
在本地git bash中通過(guò)命令定位到某個(gè)用于存放克隆文件的文件夾下,輸入如下克隆命令:
$ git clone [email protected]:/xxx/git/sample.git
克隆服務(wù)器倉(cāng)庫(kù)命令的格式為:
git clone git@服務(wù)器公網(wǎng)IP:倉(cāng)庫(kù)存放于服務(wù)器的路徑
6. 將本地git倉(cāng)庫(kù)與git服務(wù)器倉(cāng)庫(kù)關(guān)聯(lián)
在本地新建并初始化一個(gè)sample倉(cāng)庫(kù),需要和git服務(wù)器上的倉(cāng)庫(kù)名稱相同。
git服務(wù)器上建立的倉(cāng)庫(kù)為sample.git,本地的不用帶.git。
服務(wù)器和本地的倉(cāng)庫(kù)都有了,通過(guò)以下步驟將兩者關(guān)聯(lián)起來(lái):
在本地git bash中定位到本地倉(cāng)庫(kù),輸入并執(zhí)行下方代碼:
$ git remote add sample [email protected]:/xxx/git/sample.git
在git bash輸入:$ git remote -v 可以查看本地git倉(cāng)庫(kù)相關(guān)聯(lián)的遠(yuǎn)程git倉(cāng)庫(kù)。
在git bash輸入:$ git push -u sample master 推送本地倉(cāng)庫(kù)主分支到遠(yuǎn)程git倉(cāng)庫(kù),首次推送需要加-u。
以后推送直接用在git bash輸入:$ git push sample master 即可。
感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!
原文鏈接:http://blog.csdn.net/leweionline/article/details/51502847?locationNum=4&fps=1