前言:
成都創(chuàng)新互聯(lián)公司是一家專注于成都網(wǎng)站設(shè)計、成都網(wǎng)站制作與策劃設(shè)計,古塔網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)公司做網(wǎng)站,專注于網(wǎng)站建設(shè)10余年,網(wǎng)設(shè)計領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:古塔等地區(qū)。古塔做網(wǎng)站價格咨詢:028-86922220
Linus在1991年創(chuàng)建了開源的Linux,從此,Linux系統(tǒng)不斷發(fā)展,已經(jīng)成為最大的服務(wù)器系統(tǒng)軟件了。Linus雖然創(chuàng)建了Linux,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為Linux編寫代碼。2005年,為了解決Linux系統(tǒng)的源碼開發(fā)管理這一問題,Linus花了兩周時間自己用C寫了一個分布式版本控制系統(tǒng),這就是Git,目前世界上最先進(jìn)的分布式版本控制系統(tǒng)。2008年,GitHub網(wǎng)站上線了,它為開源項目免費(fèi)提供Git存儲,無數(shù)開源項目開始遷移至GitHub,包括jQuery,PHP,Ruby等等,Git迅速成為最流行的分布式版本控制系統(tǒng)。(目前,絕大多數(shù)Linux已自帶git軟件)
如果不是要和他人協(xié)同開發(fā),Git 根本就不需要架設(shè)服務(wù)器。Git在本地可以直接使用本地版本庫的路徑完成git版本庫間的操作。但是如果需要和他人分享版本庫、協(xié)作開發(fā),就需要能夠通過特定的網(wǎng)絡(luò)協(xié)議操作Git庫。Git支持的協(xié)議很豐富,架設(shè)服務(wù)器的選擇也很多,不同的方案有著各自的優(yōu)缺點(diǎn)。Gitolite是一個輕量級的開源項目,使用SSH公鑰認(rèn)證,能做到分支級的權(quán)限控制。對于個人,中小型企業(yè)及一些開源項目而言,如果沒有特殊的要求,Gitolite提供的服務(wù)已經(jīng)足夠用。
Gitolite安裝
實驗環(huán)境:
Gitolite服務(wù)器:
[root@linux-node1-gitolite-server ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@linux-node1-gitolite-server ~]# ifconfig |awk 'NR==2 {print $2}'
172.16.48.132
1. 安裝相應(yīng)的依賴環(huán)境
[root@linux-node1-gitolite-server ~]# yum install perl openssh git -y
2. 創(chuàng)建git用戶,生成用于管理gitolite的公鑰和私鑰
[root@linux-node1-gitolite-server ~]# useradd git
[root@linux-node1-gitolite-server ~]# echo git|passwd --stdin git
[root@linux-node1-gitolite-server ~]# ssh-keygen
[root@linux-node1-gitolite-server ~]# cp /root/.ssh/id_rsa.pub /tmp/admin.pub
3. 切換到git用戶下創(chuàng)建安裝目錄
[root@linux-node1-gitolite-server ~]# su - git
[git@linux-node1-gitolite-server ~]$ mkdir bin
4. 下載gitolite源碼
[git@linux-node1-gitolite-server ~]$ git clonehttps://github.com/sitaramc/gitolite.git
5. 安裝gitolite
[git@linux-node1-gitolite-server ~]$ ./gitolite/install -to /home/git/bin/
[git@linux-node1-gitolite-server ~]$ /home/git/bin/gitolite setup -pk /tmp/admin.pub
6. 切換到root用戶下,clone gitolite-admin.git
[git@linux-node1-gitolite-server ~]$ su - root
[root@linux-node1-gitolite-server ~]# git clone git@172.16.48.132:gitolite-admin.git
7. 至此,成功clone下gitolite-admin目錄即gitolite安裝成功。
[root@linux-node1-gitolite-server ~]# ls
anaconda-ks.cfg gitolite-admin
注:gitolite是通過管理gitolite-admin來對倉庫進(jìn)行授權(quán)管理的。
1. conf為配置文件目錄
2. keydir為git客戶端公鑰目錄
協(xié)作使用
開發(fā)人員1服務(wù)器配置:
[root@linux-node0-manager ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@linux-node0-manager ~]# ifconfig|awk 'NR==2 {print $2}'
172.16.48.129
1. 在開發(fā)人員1服務(wù)器上生成公鑰私鑰
[root@linux-node0-manager ~]# ssh-keygen -f ~/.ssh/chentaicheng
[root@linux-node0-manager ~]# ls ~/.ssh/
chentaicheng chentaicheng.pub
2. 將公鑰chentaicheng.pub存放到gitolite服務(wù)器的gitolite-admin/keydir目錄下
[root@linux-node0-manager ~]# scp -P22 -r -p ~/.ssh/chentaicheng.pubroot@172.16.48.132:gitolite-admin/keydir
3. 訪問倉庫配置文件
.jpg)
gitolite服務(wù)器上配置chentaicheng密鑰對應(yīng)的倉庫及權(quán)限:
1. 檢查chentaicehng.pub是否存在gitolite-admin/keydir目錄下
[root@linux-node1-gitolite-server keydir]# pwd
/root/gitolite-admin/keydir
[root@linux-node1-gitolite-server keydir]# ls
admin.pub chentaicheng.pub
[root@linux-node1-gitolite-server keydir]#
2. 配置chentaicheng密鑰對應(yīng)的倉庫
.jpg)
3. 配置git
[root@linux-node1-gitolite-server gitolite-admin]# pwd
/root/gitolite-admin
[root@linux-node1-gitolite-server gitolite-admin]# git config --global user.email "chentaicheng@qq.com"
[root@linux-node1-gitolite-server gitolite-admin]# git config --global user.name "chentaicheng"
4. 將修改后的配置及公鑰更新到gitolite服務(wù)器
[root@linux-node1-gitolite-server gitolite-admin]# git add *
[root@linux-node1-gitolite-server gitolite-admin]# git commit -m 'add new repo ctc by chentaicheng'
[root@linux-node1-gitolite-server gitolite-admin]# git push
檢查開發(fā)人員1是否能獲取倉庫ctc的讀寫權(quán)限
Clone ctc倉庫并增加內(nèi)容然后提交到遠(yuǎn)程倉庫上
[root@linux-node0-manager ~]# git clone gitolite:ctc
Cloning into 'ctc'...
Enter passphrase for key '/root/.ssh/chentaicheng':
warning: You appear to have cloned an empty repository.
[root@linux-node0-manager ~]# ls
anaconda-ks.cfg ctc
[root@linux-node0-manager ~]# cd ctc/
[root@linux-node0-manager ctc]# git config --global user.email "791582297@qq.com"
[root@linux-node0-manager ctc]# git config --global user.name "CTC"
[root@linux-node0-manager ctc]# git add readme.txt
[root@linux-node0-manager ctc]# git commit -m 'add readme.txt'
[root@linux-node0-manager ctc]# git push origin master
至此,git+gitolite部署完畢。
開發(fā)人員2獲取開發(fā)人員1push的代碼
開發(fā)人員2環(huán)境:
[root@linux-node2-develop ~]# cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
[root@linux-node2-develop ~]# ifconfig|awk 'NR==2 {print $2}'
172.16.48.133
1. 在開發(fā)人員2主機(jī)上生成密鑰對,并將密鑰傳輸?shù)絞itolite服務(wù)的gitolite-admin/keydir目錄下
[root@linux-node2-develop ~]# mkdir .ssh
[root@linux-node2-develop ~]# ssh-keygen -f .ssh/develop
[root@linux-node2-develop ~]# scp -P22root@172.16.48.132:gitolite-admin/keydir
2. 配置develop密鑰對應(yīng)的倉庫
3. gitolite修改配置文件,并更新到gitolite服務(wù)器上,使開發(fā)人員2對ctc倉庫具有讀寫權(quán)限。
.jpg)
[root@linux-node1-gitolite-server gitolite-admin]# pwd
/root/gitolite-admin
[root@linux-node1-gitolite-server gitolite-admin]# git add *
[root@linux-node1-gitolite-server gitolite-admin]# git commit -m 'add develop'
[root@linux-node1-gitolite-server gitolite-admin]# git push
4. 開發(fā)人員2獲取開發(fā)人員1push的代碼
[root@linux-node2-develop ~]# git clone gitolite:ctc
[root@linux-node2-develop ~]# ls
anaconda-ks.cfg ctc
[root@linux-node2-develop ~]# cd ctc/
[root@linux-node2-develop ctc]# ls
readme.txt
網(wǎng)頁名稱:版本控制系統(tǒng)(git+gitolite)
分享URL:http://www.chinadenli.net/article36/pecppg.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站設(shè)計、網(wǎng)站營銷、虛擬主機(jī)、域名注冊、營銷型網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)