持續(xù)集成之Gitlab安裝與應(yīng)用-創(chuàng)新互聯(lián)

前言:

Gitlab 是一個利用 Ruby on Rails 開發(fā)的開源應(yīng)用程序,實現(xiàn)一個自托管的 Git 項目倉庫,可通過Web 界面進行訪問公開的或者私人的項目 Gitlab 擁有與 Github 類似的功能,能夠瀏覽源代碼,管理缺陷和注釋??梢怨芾韴F隊對倉庫的訪問,他非常易于瀏覽提交過的版本并提供一個文件歷史庫。他還提供一個代碼片段收集功能可以輕松實現(xiàn)代碼復(fù)用,便于日后有需要的時候進行查找

公司專注于為企業(yè)提供成都網(wǎng)站制作、網(wǎng)站建設(shè)、外貿(mào)網(wǎng)站建設(shè)、微信公眾號開發(fā)、電子商務(wù)商城網(wǎng)站建設(shè),小程序定制開發(fā),軟件按需設(shè)計等一站式互聯(lián)網(wǎng)企業(yè)服務(wù)。憑借多年豐富的經(jīng)驗,我們會仔細了解各客戶的需求而做出多方面的分析、設(shè)計、整合,為客戶設(shè)計出具風(fēng)格及創(chuàng)意性的商業(yè)解決方案,創(chuàng)新互聯(lián)公司更提供一系列網(wǎng)站制作和網(wǎng)站推廣的服務(wù)。

博文大綱:
一、環(huán)境準(zhǔn)備
二、安裝部署gitlab
三、遠端庫的基本操作
四、重置gitlab管理員密碼

一、環(huán)境準(zhǔn)備

如果是測試環(huán)境,其內(nèi)存建議2G及以上,可以去清華開源鏡像站下載所需gitlab版本,其安裝后,會自動安裝nginx提供web界面,所以要避免80端口占用。

二、安裝部署gitlab

1、安裝gitlab

[root@git src]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-11.9.8-ce.0.el7.x86_64.rpm
[root@git ~]# rpm -ivh gitlab-ce-11.9.8-ce.0.el7.x86_64.rpm   #安裝rpm包
#由于我不打算做域名解析,所以需要修改其配置文件
[root@git ~]# vim /etc/gitlab/gitlab.rb 
external_url 'http://192.168.20.2'     #將原本的域名改為本機IP
[root@git ~]# gitlab-ctl reconfigure    #重新配置gitlab,就算不修改配置文件,也需要在安裝后重新配置gitlab
[root@git ~]# netstat -anpt | grep -w 80      #確定nginx在監(jiān)聽80端口
tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      3872/nginx: master

2、配置gitlab

客戶端訪問服務(wù)器的IP地址,可以看到以下界面(配置密碼并登陸):

持續(xù)集成之Gitlab安裝與應(yīng)用

持續(xù)集成之Gitlab安裝與應(yīng)用

上傳服務(wù)器公鑰(接下來的操作與在github上大同小異),先在服務(wù)器上生成密鑰對:

[root@git ~]# ssh-keygen -t rsa -C "916551516@qq.com"
#執(zhí)行上述命令生成秘鑰對,一路回車即可,后面是自己的郵箱
[root@git ~]# cat ~/.ssh/id_rsa.pub     #查看生成的公鑰并復(fù)制其內(nèi)容
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCVUbmw+PC2plXMviNBA6YKgWx+1419uMPJhJNGeZ8Mi7njBlAyhfzWQsCFamQqU4nwSMWua3oEJZEiT6ZRgLQQyYwZ+DESQCyhAJYdtOgwtRh4XaIgAASzlqZ0hIjhhwi+pD/GjktySiW/UvaiqkkBgfdXCuXlSH7R8T4PoRCpYZ92OwQmMV/blGd/SXLDCaqHlgz1K8As8HFoaFAkrmS+jSio616+w2o8ly2PBbVoZa129BD8SQ81KAs5drGTD2OsKHFx08rS5izSc2MKLjet7+00CXJebwZQLB1LS/TUXwrPAHLQO8ZN8AYCsoIv6coEYRhW93BoBZ8Swetys/KD 916551516@qq.com

然后回到web界面:

持續(xù)集成之Gitlab安裝與應(yīng)用

持續(xù)集成之Gitlab安裝與應(yīng)用

添加后如下:

持續(xù)集成之Gitlab安裝與應(yīng)用

創(chuàng)建一個庫:

持續(xù)集成之Gitlab安裝與應(yīng)用

持續(xù)集成之Gitlab安裝與應(yīng)用

持續(xù)集成之Gitlab安裝與應(yīng)用

持續(xù)集成之Gitlab安裝與應(yīng)用

回到服務(wù)器上進行克隆剛剛創(chuàng)建的庫:

[root@git ~]# git clone git@192.168.20.2:root/test01.git   #克隆
[root@git ~]# cd test01/      #進入克隆的庫
[root@git test01]# ls    #該目錄下的東西和剛剛web頁面創(chuàng)建好庫后的內(nèi)容一樣
README.md
#自報家門
[root@git test01]# git config --global user.name "test"
[root@git test01]# git config --global user.email "test@test.com"
#向遠端庫上傳文件進行測試
[root@git test01]# echo "aaaaaaaaa" > test.txt
[root@git test01]# git add test.txt
[root@git test01]# git commit -m "alter from 192.168.20.2"
[root@git test01]# git push origin master    #推送到遠端庫

刷新web界面的庫頁面:

持續(xù)集成之Gitlab安裝與應(yīng)用

三、遠端庫的基本操作

當(dāng)你從遠端倉庫克隆時,實際上git自動把本地的master分支和遠端的master分支對應(yīng)起來了,并且遠程倉庫的默認名稱是origin。

要查看遠程庫的信息,使用以下命令:

[root@git test01]# git remote    #簡略信息
origin
[root@git test01]# git remote -v    #詳細信息
origin  git@192.168.20.2:root/test01.git (fetch)
origin  git@192.168.20.2:root/test01.git (push)

推送分支:

[root@git test01]# git push origin master    #推送本地的master分支
[root@git test01]# git push origin dev    #推送本地的dev分支,若遠端沒有dev分支,會自動創(chuàng)建

抓取分支:

[root@git test01]# git pull origin dev      #根據(jù)提示將遠端的dev分支抓取下來

當(dāng)我們從遠程庫克隆時,默認情況下,只能看到master分支,可以使用git branch命令確認。

解決多人協(xié)作容易產(chǎn)生的問題

當(dāng)我們整個小組對同一個分支進行開發(fā)時,如果在你提交之前,你的同事已經(jīng)修改了分支的內(nèi)容并推送到遠端倉庫,而碰巧你也對同樣的文件做了修改,并試圖推送,那么會推送失敗,因為你的同事的最新提交的數(shù)據(jù)和你試圖提交的數(shù)據(jù)有沖突(你本地的內(nèi)容比遠端倉庫的舊了),解決的辦法會在提示你推送失敗的返回信息中給出,這里我們模擬一下這一過程。

#進入另一個目錄,克隆遠端倉庫,模擬多人協(xié)作
[root@git test01]# cd /tmp
[root@git tmp]# git clone git@192.168.20.2:root/test01.git
[root@git test01]# git checkout -b dev     #創(chuàng)建一個分支dev并進入
[root@git test01]# echo "aaaaaaaaa" > tmp.txt
[root@git test01]# git add tmp.txt
[root@git test01]# git commit -m "commmit from /tmp"
[root@git test01]# git push origin dev        #將新修改的內(nèi)容推送到遠端

回到web界面進行刷新,即可看到新提交的分支:

持續(xù)集成之Gitlab安裝與應(yīng)用

上面的操作是在/tmp目錄下進行操作的,那么現(xiàn)在操作/root目錄下的遠程倉庫:

#進入root目錄下的遠程倉庫并創(chuàng)建dev分支,推送內(nèi)容至遠端倉庫
[root@git test01]# cd /root/test01/
[root@git test01]# git checkout -b dev
[root@git test01]# echo "bbbbbbbbbb" > root.txt
[root@git test01]# git add root.txt
[root@git test01]# git commit -m "commit from /root"
[root@git test01]# git push origin dev        #此時我們推送,就會提示以下錯誤
To git@192.168.20.2:root/test01.git
 ! [rejected]        dev -> dev (fetch first)
error: 無法推送一些引用到 'git@192.168.20.2:root/test01.git'
提示:更新被拒絕,因為遠程版本庫包含您本地尚不存在的提交。這通常是因為另外
提示:一個版本庫已推送了相同的引用。再次推送前,您可能需要先合并遠程變更
提示:(如 'git pull')。
提示:詳見 'git push --help' 中的 'Note about fast-forwards' 小節(jié)。
#提示遠程版本庫有我們本地版本庫沒有的提交,所以需要先將遠端版本庫pull下來,再提交

[root@git test01]# git pull origin dev      #根據(jù)提示將遠端的dev分支pull下來
[root@git test01]# ls      #我們在/tmp目錄下提交的文件就存在了
README.md  root.txt  test.txt  tmp.txt
[root@git test01]# git push origin dev         #然后再次將本地的dev分支推送到gitlab,即可成功

此時,web界面的dev分支就有了我們在/tmp目錄和/root目錄下提交的所有內(nèi)容,如下:

持續(xù)集成之Gitlab安裝與應(yīng)用

但是master分支,仍然是最初的文件,如下:

持續(xù)集成之Gitlab安裝與應(yīng)用

現(xiàn)在進行遠程版本庫的分支合并,如下:


[root@git test01]# git checkout master   #切換至master分支
[root@git test01]# git merge dev     #合并dev分支
[root@git test01]# ls    #查看合并后的分支下內(nèi)容
README.md  root.txt  test.txt  tmp.txt
#提交到本地版本庫
[root@git test01]# git pull    #下載遠端版本庫
[root@git test01]# git add *
[root@git test01]# git commit -m "提交"
[master 3717c1c] 提交
[root@git test01]# git push origin master     #推送到遠端版本庫

現(xiàn)在遠程版本庫的master分支內(nèi)容如下:
持續(xù)集成之Gitlab安裝與應(yīng)用

現(xiàn)在已經(jīng)擁有了dev分支的所有內(nèi)容,那么接下來就演示如何刪除遠程版本庫的dev分支:

[root@git test01]# git branch -d dev   #刪除本地的dev分支
[root@git test01]# git branch -r -d origin/dev     #刪除指定的遠程分支 
[root@git test01]# git push origin :dev         #將刪除的分支提交到遠程版本庫中

至此,遠端版本庫中的dev分支就被刪除了,如下:

持續(xù)集成之Gitlab安裝與應(yīng)用

四、重置gitlab管理員密碼

[root@git ~]# gitlab-rails console production     #執(zhí)行該命令,只有第一個命令字可以tab出來
-------------------------------------------------------------------------------------
 GitLab:       11.9.8 (48528bc)
 GitLab Shell: 8.7.1
 postgresql:   9.6.11
-------------------------------------------------------------------------------------
Loading production environment (Rails 5.0.7.1)
irb(main):001:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):003:0> user.password='test1234'
=> "test1234"
irb(main):004:0> user.password_confirmation='test1234'
=> "test1234"
irb(main):005:0> user.save
Enqueued ActionMailer::DeliveryJob (Job ID: 17d6f678-3cae-4de2-be59-b19a6d22b9fa) to Sidekiq(mailers) with arguments: "DeviseMailer", "password_change", "deliver_now", #<GlobalID:0x00007f895034e280 @uri=#<URI::GID gid://gitlab/User/1>>
=> true
irb(main):006:0> true
=> true
irb(main):007:0> exit

至此,再次登錄,就需要使用新密碼test1234進行登錄了。

另外有需要云服務(wù)器可以了解下創(chuàng)新互聯(lián)cdcxhl.cn,海內(nèi)外云服務(wù)器15元起步,三天無理由+7*72小時售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國服務(wù)器、虛擬主機、免備案服務(wù)器”等云主機租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡單易用、服務(wù)可用性高、性價比高”等特點與優(yōu)勢,專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場景需求。

當(dāng)前標(biāo)題:持續(xù)集成之Gitlab安裝與應(yīng)用-創(chuàng)新互聯(lián)
當(dāng)前URL:http://muchs.cn/article8/ijpip.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站設(shè)計、微信小程序、網(wǎng)站策劃品牌網(wǎng)站制作、建站公司網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時需注明來源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站