中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

版本控制系統(git + gitolite)

發布時間:2020-03-03 12:57:18 來源:網絡 閱讀:737 作者:CHENG791 欄目:軟件技術

前言:

Git簡介

Linus1991年創建了開源的Linux,從此,Linux系統不斷發展,已經成為最大的服務器系統軟件了。Linus雖然創建了Linux,但Linux的壯大是靠全世界熱心的志愿者參與的,這么多人在世界各地為Linux編寫代碼。2005年,為了解決Linux系統的源碼開發管理這一問題,Linus花了兩周時間自己用C寫了一個分布式版本控制系統,這就是Git,目前世界上最先進的分布式版本控制系統。2008年,GitHub網站上線了,它為開源項目免費提供Git存儲,無數開源項目開始遷移至GitHub,包括jQueryPHPRuby等等,Git迅速成為最流行的分布式版本控制系統。(目前,絕大多數Linux已自帶git軟件


Gitolite簡介

如果不是要和他人協同開發,Git 根本就不需要架設服務器。Git 在本地可以直接使用本地版本庫的路徑完成 git 版本庫間的操作。但是如果需要和他人分享版本庫、協作開發,就需要能夠通過特定的網絡協議操作 Git 庫。Git 支持的協議很豐富,架設服務器的選擇也很多,不同的方案有著各自的優缺點。Gitolite 是一個輕量級開源項目,使用SSH公鑰認證,能做到分支級的權限控制。對于個人,中小型企業及一些開源項目而言,如果沒有特殊的要求Gitolite提供的服務已經足夠用。

 

 

 

 

 

 

Gitolite安裝

實驗環境:

Gitolite服務器:

[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. 安裝相應的依賴環境

[root@linux-node1-gitolite-server ~]# yum install perl openssh git -y

 

2. 創建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用戶下創建安裝目錄

[root@linux-node1-gitolite-server ~]# su - git

[git@linux-node1-gitolite-server ~]$ mkdir bin

 

4. 下載gitolite源碼

[git@linux-node1-gitolite-server ~]$ git clone https://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. 至此,成功clonegitolite-admin目錄即gitolite安裝成功。

[root@linux-node1-gitolite-server ~]# ls

anaconda-ks.cfg  gitolite-admin

 

注:gitolite是通過管理gitolite-admin來對倉庫進行授權管理的。

1. conf為配置文件目錄

2. keydirgit客戶端公鑰目錄

 

 

 

協作使用

開發人員1服務器配置:

[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. 在開發人員1服務器上生成公鑰私鑰

[root@linux-node0-manager ~]# ssh-keygen -f ~/.ssh/chentaicheng

[root@linux-node0-manager ~]# ls ~/.ssh/

chentaicheng  chentaicheng.pub

 

2. 將公鑰chentaicheng.pub存放到gitolite服務器的gitolite-admin/keydir目錄下

[root@linux-node0-manager ~]# scp -P22 -r -p ~/.ssh/chentaicheng.pub root@172.16.48.132:gitolite-admin/keydir

 

3. 訪問倉庫配置文件

版本控制系統(git + gitolite)

 

 

gitolite服務器上配置chentaicheng密鑰對應的倉庫及權限:

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密鑰對應的倉庫

版本控制系統(git + gitolite)

 

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服務器

[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

 

檢查開發人員1是否能獲取倉庫ctc的讀寫權限

版本控制系統(git + gitolite) 

 

Clone ctc倉庫并增加內容然后提交到遠程倉庫上

[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部署完畢。

 

 

 

 

 

 

 

 

 

 

 

開發人員2獲取開發人員1push的代碼

開發人員2環境:

[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. 在開發人員2主機上生成密鑰對,并將密鑰傳輸到gitolite服務的gitolite-admin/keydir目錄下

[root@linux-node2-develop ~]# mkdir .ssh

[root@linux-node2-develop ~]# ssh-keygen -f .ssh/develop

[root@linux-node2-develop ~]# scp -P22 root@172.16.48.132:gitolite-admin/keydir

 

2. 配置develop密鑰對應的倉庫

版本控制系統(git + gitolite) 

 

3. gitolite修改配置文件,并更新到gitolite服務器上,使開發人員2ctc倉庫具有讀寫權限。

版本控制系統(git + gitolite)

[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. 開發人員2獲取開發人員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


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

芦溪县| 广宁县| 荆州市| 青州市| 宁化县| 龙门县| 安庆市| 盘山县| 阿拉尔市| 阜康市| 广元市| 安宁市| 青阳县| 东乡| 武隆县| 金华市| 呼图壁县| 青岛市| 社会| 宣城市| 壤塘县| 沽源县| 馆陶县| 依兰县| 甘孜| 永胜县| 红河县| 河南省| 沂源县| 郸城县| 玛纳斯县| 日土县| 永定县| 延庆县| 青铜峡市| 封丘县| 务川| 繁昌县| 镇康县| 家居| 济源市|