Gitlab 是一個(gè)利用 Ruby on Rails 開發(fā)的開源應(yīng)用程序,實(shí)現(xiàn)一個(gè)Git 項(xiàng)目倉(cāng)庫(kù),可通過(guò)Web 界面進(jìn)行訪問(wèn)公開的或者私人的項(xiàng)目 Gitlab 擁有與 Github 類似的功能,能夠?yàn)g覽源代碼,管理缺陷和注釋??梢怨芾韴F(tuán)隊(duì)對(duì)倉(cāng)庫(kù)的訪問(wèn),他非常易于瀏覽提交過(guò)的版本并提供一個(gè)文件歷史庫(kù)。他還提供一個(gè)代碼片段收集功能可以輕松實(shí)現(xiàn)代碼復(fù)用,便于日后有需要的時(shí)候進(jìn)行查找。
站在用戶的角度思考問(wèn)題,與客戶深入溝通,找到郾城網(wǎng)站設(shè)計(jì)與郾城網(wǎng)站推廣的解決方案,憑借多年的經(jīng)驗(yàn),讓設(shè)計(jì)與互聯(lián)網(wǎng)技術(shù)結(jié)合,創(chuàng)造個(gè)性化、用戶體驗(yàn)好的作品,建站類型包括:成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣、域名申請(qǐng)、網(wǎng)頁(yè)空間、企業(yè)郵箱。業(yè)務(wù)覆蓋郾城地區(qū)。關(guān)于gitlab的詳細(xì)信息建議參考gitlab官網(wǎng)進(jìn)行詳細(xì)的了解!
博文大綱:
一、準(zhǔn)備環(huán)境
二、安裝Gitlab
三、漢化Gitlab
四、gitlab基本操作
五、遠(yuǎn)端庫(kù)的基本操作
六、重置gitlab管理員密碼
操作系統(tǒng) | 內(nèi)存 | CPU |
---|---|---|
centos 7 | 4G以上 | 雙核 |
[root@gitlab ~]# yum -y install epel-release curl openssh-server openssh-clients postfix cronie policycoreutils-python
方法一:通過(guò)清華大學(xué)的開源鏡像站獲取軟件包(推薦)
[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
方法二:通過(guò)Gitlab官網(wǎng)來(lái)獲取軟件包(網(wǎng)絡(luò)穩(wěn)定時(shí)使用)
[root@gitlab ~]# wget --content-disposition https://packages.gitlab.com/gitlab/gitlab-ce/packages/el/7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm/download.rpm
[root@gitlab ~]# rpm -ivh gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
#安裝時(shí)間較長(zhǎng),耐心等待,安裝過(guò)程中會(huì)出現(xiàn)gitlab的logo
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb #修改gitlab的配置文件
……………………………… #省略部分內(nèi)容
external_url 'http://192.168.1.8' #將此處改為本機(jī)的IP地址,便于訪問(wèn)
[root@gitlab ~]# gitlab-ctl reconfigure #重新配置gitlab,就算不修改配置文件,也需要在安裝后重新配置gitlab
如圖:
可以訪問(wèn)到表示沒(méi)有問(wèn)題,但是都是英文界面,對(duì)于英文不好的我表示很是頭疼,還好可以通過(guò)一些方法使其漢化,方法如下!
[root@gitlab ~]# head -1 /opt/gitlab/version-manifest.txt #查看gitlab的版本
gitlab-ce 12.3.5
[root@gitlab ~]# git clone https://gitlab.com/xhang/gitlab.git -b v12.3.5-zh
#獲取漢化補(bǔ)丁包(注意需與gitlab的版本保持一致)
[root@gitlab ~]# cd gitlab/ #進(jìn)入剛才clone下來(lái)的gitlab目錄
[root@gitlab gitlab]# git diff v12.3.5 v12.3.5-zh > /root/v12.3.5-zh.diff
#用diff將英文原版與中文版的對(duì)比生成.diff文件
[root@gitlab gitlab]# gitlab-ctl stop #停止gitlab
[root@gitlab gitlab]# yum -y install patch
[root@gitlab gitlab]# patch -d /opt/gitlab/embedded/service/gitlab-rails -p1 < ../v12.3.5-zh.diff
#將剛才的diff文件做為補(bǔ)丁導(dǎo)入到gitlab中
#該命令執(zhí)行過(guò)程中,一路回車跳過(guò)即可
[root@gitlab gitlab]# gitlab-ctl start #啟動(dòng)gitlab
[root@gitlab gitlab]# gitlab-ctl reconfigure #重新配置gitlab
如圖:
[root@gitlab ~]# ssh-keygen -t rsa -C "1454295320@qq.com"
#生成秘鑰對(duì),一路回車即可,“-C”后是自己的郵箱
[root@gitlab ~]# cat ~/.ssh/id_rsa.pub #查看生成的公鑰并復(fù)制
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvNm+nXc59ugb0SGr9iMHDSFjvmdSJk0ORuX3hbjt822Y2ofXysUrIuBSQ1Jn0Rss/LPU54K32i4bIDsa/jD9gIpN/GqU+YP1MQ9bEw3YVUONAs+nYeWJWahQ1rMTeM0HC9aKvNTrNsOqrXIboJymBrs6Odt+1NnZsYHMwA/KlpYCFsi0HQgBzsLbrD5v++cIDTvM/V4rMq6fqFsfWoYYMHWc8JeNMl/aWJV1RhJpt7wm17FEv3XiH+wyoef5ZYI60IkH5qMJkjWhKcRXCWG5SH3nphUb1fmktB4DH92TW/EGw///VQEnE7tkpNjyJpOTXDuHnEk2tw43cctDN2sJH 1454295320@qq.com
回到web頁(yè)面,操作如下:
如圖:
回到服務(wù)器上輸入測(cè)試的命令,如下:
[root@gitlab ~]# git config --global user.name "Administrator"
[root@gitlab ~]# git config --global user.email "admin@example.com"
[root@gitlab ~]# git clone git@192.168.1.8:root/test01.git
#克隆到本地,根據(jù)提示輸入“yes”即可!
[root@gitlab ~]# cd test01/
[root@gitlab test01]# touch README.md
[root@gitlab test01]# git add README.md
[root@gitlab test01]# git commit -m "add README"
[root@gitlab test01]# git push -u origin master
刷新web頁(yè)面即可,如圖:
當(dāng)你從遠(yuǎn)端倉(cāng)庫(kù)克隆時(shí),實(shí)際上git自動(dòng)把本地的master分支和遠(yuǎn)端的master分支對(duì)應(yīng)起來(lái)了,并且遠(yuǎn)程倉(cāng)庫(kù)的默認(rèn)名稱是origin。
[root@gitlab test01]# git remote #簡(jiǎn)潔信息
origin
[root@gitlab test01]# git remote -v #詳細(xì)信息
origin git@192.168.1.8:root/test01.git (fetch)
origin git@192.168.1.8:root/test01.git (push)
[root@gitlab test01]# git checkout -b dev #創(chuàng)建并切換到dev分支
[root@gitlab test01]# git push origin dev #將本地的分支推送到遠(yuǎn)程倉(cāng)庫(kù)
刷新頁(yè)面之后,如圖:
當(dāng)我們整個(gè)小組對(duì)同一個(gè)分支進(jìn)行開發(fā)時(shí),如果在你提交之前,你的同事已經(jīng)修改了分支的內(nèi)容并推送到遠(yuǎn)端倉(cāng)庫(kù),而碰巧你也對(duì)同樣的文件做了修改,并試圖推送,那么會(huì)推送失敗,因?yàn)槟愕耐碌淖钚绿峤坏臄?shù)據(jù)和你試圖提交的數(shù)據(jù)有沖突(你本地的內(nèi)容比遠(yuǎn)端倉(cāng)庫(kù)的舊了),解決的辦法會(huì)在提示你推送失敗的返回信息中給出,這里我們模擬一下這一過(guò)程。
#進(jìn)入另一個(gè)目錄,克隆遠(yuǎn)端倉(cāng)庫(kù),模擬多人操作
[root@gitlab test01]# cd /tmp
[root@gitlab tmp]# git clone git@192.168.1.8:root/test01.git
[root@gitlab tmp]# cd test01/
[root@gitlab test01]# git checkout -b etc #重新創(chuàng)建一個(gè)分支并切換
[root@gitlab test01]# echo -e "touch /tmp/test01" > tmp.txt
[root@gitlab test01]# git add tmp.txt
[root@gitlab test01]# git commit -m "commmit from /tmp"
[root@gitlab test01]# git push origin etc #將新修改的內(nèi)容推送到遠(yuǎn)端
回到web界面進(jìn)行刷新,即可看到新提交的分支:
#上述操作是在/tmp目錄下執(zhí)行的,接下來(lái)的操作在/root目錄下執(zhí)行:
[root@gitlab test01]# cd /root/test01/
[root@gitlab test01]# git checkout -b etc
[root@gitlab test01]# echo "touch /root/test01.txt" > root.txt
[root@gitlab test01]# git add root.txt
[root@gitlab test01]# git commit -m "commit from /root"
[root@gitlab test01]# git push origin etc
#再次推送,將會(huì)出現(xiàn)以下錯(cuò)誤
To git@192.168.1.8:root/test01.git
! [rejected] etc -> etc (fetch first)
error: 無(wú)法推送一些引用到 'git@192.168.1.8:root/test01.git'
提示:更新被拒絕,因?yàn)檫h(yuǎn)程版本庫(kù)包含您本地尚不存在的提交。這通常是因?yàn)榱硗?提示:一個(gè)版本庫(kù)已推送了相同的引用。再次推送前,您可能需要先合并遠(yuǎn)程變更
提示:(如 'git pull')。
提示:詳見 'git push --help' 中的 'Note about fast-forwards' 小節(jié)。
[root@gitlab test01]# git pull origin etc #將遠(yuǎn)端的etc分支pull到本地
[root@gitlab test01]# ls #可以看出在/tmp目錄下提交的文件就存在了
README.md root.txt tmp.txt
[root@gitlab test01]# git push origin etc #然后再次將本地的dev分支推送到gitlab,即可成功
再次刷新web頁(yè)面,etc分支下就會(huì)有了我們?cè)?tmp目錄和/root目錄下提交的所有內(nèi)容,如圖:
[root@gitlab test01]# git checkout master #切換至master分支
[root@gitlab test01]# git merge etc #合并etc分支
[root@gitlab test01]# ls #查看合并后的分支下內(nèi)容
README.md root.txt tmp.txt
[root@gitlab test01]# git add .
[root@gitlab test01]# git commit -m "提交"
[root@gitlab test01]# git push origin master #推送到遠(yuǎn)端版本庫(kù)
再次刷新web頁(yè)面,如圖:
[root@gitlab test01]# git branch -d etc #刪除本地的dev分支
[root@gitlab test01]# git branch -r -d origin/etc #刪除指定的遠(yuǎn)程分支
[root@gitlab test01]# git push origin :etc #將刪除的分支提交到遠(yuǎn)程版本庫(kù)中
[root@gitlab test01]# git branch -d dev
[root@gitlab test01]# git branch -r -d origin/dev
[root@gitlab test01]# git push origin :dev #同上
再次刷新web頁(yè)面,如下:
[root@gitlab ~]# gitlab-rails console production #必須是root用戶登錄服務(wù)器執(zhí)行該命令
irb(main):001:0> user = User.where(id: 1).first #id為1的是超級(jí)管理員
irb(main):002:0> user.password = 'yourpassword' #密碼必須至少8個(gè)字符
irb(main):003:0> user.save! #保存用戶修改信息,如沒(méi)有問(wèn)題返回true
irb(main):004:0> exit #退出
至此,再次登錄,就需要使用新密碼yourpassword進(jìn)行登錄了。