您好,登錄后才能下訂單哦!
Gitlab 是一個利用 Ruby on Rails 開發的開源應用程序,實現一個Git 項目倉庫,可通過Web 界面進行訪問公開的或者私人的項目 Gitlab 擁有與 Github 類似的功能,能夠瀏覽源代碼,管理缺陷和注釋。可以管理團隊對倉庫的訪問,他非常易于瀏覽提交過的版本并提供一個文件歷史庫。他還提供一個代碼片段收集功能可以輕松實現代碼復用,便于日后有需要的時候進行查找。
關于gitlab的詳細信息建議參考gitlab官網進行詳細的了解!
博文大綱:
一、準備環境
二、安裝Gitlab
三、漢化Gitlab
四、gitlab基本操作
五、遠端庫的基本操作
六、重置gitlab管理員密碼
操作系統 | 內存 | CPU |
---|---|---|
centos 7 | 4G以上 | 雙核 |
[root@gitlab ~]# yum -y install epel-release curl openssh-server openssh-clients postfix cronie policycoreutils-python
方法一:通過清華大學的開源鏡像站獲取軟件包(推薦)
[root@gitlab ~]# wget https://mirrors.tuna.tsinghua.edu.cn/gitlab-ce/yum/el7/gitlab-ce-12.3.5-ce.0.el7.x86_64.rpm
方法二:通過Gitlab官網來獲取軟件包(網絡穩定時使用)
[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
#安裝時間較長,耐心等待,安裝過程中會出現gitlab的logo
[root@gitlab ~]# vim /etc/gitlab/gitlab.rb #修改gitlab的配置文件
……………………………… #省略部分內容
external_url 'http://192.168.1.8' #將此處改為本機的IP地址,便于訪問
[root@gitlab ~]# gitlab-ctl reconfigure #重新配置gitlab,就算不修改配置文件,也需要在安裝后重新配置gitlab
如圖:
可以訪問到表示沒有問題,但是都是英文界面,對于英文不好的我表示很是頭疼,還好可以通過一些方法使其漢化,方法如下!
[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
#獲取漢化補丁包(注意需與gitlab的版本保持一致)
[root@gitlab ~]# cd gitlab/ #進入剛才clone下來的gitlab目錄
[root@gitlab gitlab]# git diff v12.3.5 v12.3.5-zh > /root/v12.3.5-zh.diff
#用diff將英文原版與中文版的對比生成.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文件做為補丁導入到gitlab中
#該命令執行過程中,一路回車跳過即可
[root@gitlab gitlab]# gitlab-ctl start #啟動gitlab
[root@gitlab gitlab]# gitlab-ctl reconfigure #重新配置gitlab
如圖:
[root@gitlab ~]# ssh-keygen -t rsa -C "1454295320@qq.com"
#生成秘鑰對,一路回車即可,“-C”后是自己的郵箱
[root@gitlab ~]# cat ~/.ssh/id_rsa.pub #查看生成的公鑰并復制
ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABAQCvNm+nXc59ugb0SGr9iMHDSFjvmdSJk0ORuX3hbjt822Y2ofXysUrIuBSQ1Jn0Rss/LPU54K32i4bIDsa/jD9gIpN/GqU+YP1MQ9bEw3YVUONAs+nYeWJWahQ1rMTeM0HC9aKvNTrNsOqrXIboJymBrs6Odt+1NnZsYHMwA/KlpYCFsi0HQgBzsLbrD5v++cIDTvM/V4rMq6fqFsfWoYYMHWc8JeNMl/aWJV1RhJpt7wm17FEv3XiH+wyoef5ZYI60IkH5qMJkjWhKcRXCWG5SH3nphUb1fmktB4DH92TW/EGw///VQEnE7tkpNjyJpOTXDuHnEk2tw43cctDN2sJH 1454295320@qq.com
回到web頁面,操作如下:
如圖:
回到服務器上輸入測試的命令,如下:
[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
#克隆到本地,根據提示輸入“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頁面即可,如圖:
當你從遠端倉庫克隆時,實際上git自動把本地的master分支和遠端的master分支對應起來了,并且遠程倉庫的默認名稱是origin。
[root@gitlab test01]# git remote #簡潔信息
origin
[root@gitlab test01]# git remote -v #詳細信息
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 #創建并切換到dev分支
[root@gitlab test01]# git push origin dev #將本地的分支推送到遠程倉庫
刷新頁面之后,如圖:
當我們整個小組對同一個分支進行開發時,如果在你提交之前,你的同事已經修改了分支的內容并推送到遠端倉庫,而碰巧你也對同樣的文件做了修改,并試圖推送,那么會推送失敗,因為你的同事的最新提交的數據和你試圖提交的數據有沖突(你本地的內容比遠端倉庫的舊了),解決的辦法會在提示你推送失敗的返回信息中給出,這里我們模擬一下這一過程。
#進入另一個目錄,克隆遠端倉庫,模擬多人操作
[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 #重新創建一個分支并切換
[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 #將新修改的內容推送到遠端
回到web界面進行刷新,即可看到新提交的分支:
#上述操作是在/tmp目錄下執行的,接下來的操作在/root目錄下執行:
[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
#再次推送,將會出現以下錯誤
To git@192.168.1.8:root/test01.git
! [rejected] etc -> etc (fetch first)
error: 無法推送一些引用到 'git@192.168.1.8:root/test01.git'
提示:更新被拒絕,因為遠程版本庫包含您本地尚不存在的提交。這通常是因為另外
提示:一個版本庫已推送了相同的引用。再次推送前,您可能需要先合并遠程變更
提示:(如 'git pull')。
提示:詳見 'git push --help' 中的 'Note about fast-forwards' 小節。
[root@gitlab test01]# git pull origin etc #將遠端的etc分支pull到本地
[root@gitlab test01]# ls #可以看出在/tmp目錄下提交的文件就存在了
README.md root.txt tmp.txt
[root@gitlab test01]# git push origin etc #然后再次將本地的dev分支推送到gitlab,即可成功
再次刷新web頁面,etc分支下就會有了我們在/tmp目錄和/root目錄下提交的所有內容,如圖:
[root@gitlab test01]# git checkout master #切換至master分支
[root@gitlab test01]# git merge etc #合并etc分支
[root@gitlab test01]# ls #查看合并后的分支下內容
README.md root.txt tmp.txt
[root@gitlab test01]# git add .
[root@gitlab test01]# git commit -m "提交"
[root@gitlab test01]# git push origin master #推送到遠端版本庫
再次刷新web頁面,如圖:
[root@gitlab test01]# git branch -d etc #刪除本地的dev分支
[root@gitlab test01]# git branch -r -d origin/etc #刪除指定的遠程分支
[root@gitlab test01]# git push origin :etc #將刪除的分支提交到遠程版本庫中
[root@gitlab test01]# git branch -d dev
[root@gitlab test01]# git branch -r -d origin/dev
[root@gitlab test01]# git push origin :dev #同上
再次刷新web頁面,如下:
[root@gitlab ~]# gitlab-rails console production #必須是root用戶登錄服務器執行該命令
irb(main):001:0> user = User.where(id: 1).first #id為1的是超級管理員
irb(main):002:0> user.password = 'yourpassword' #密碼必須至少8個字符
irb(main):003:0> user.save! #保存用戶修改信息,如沒有問題返回true
irb(main):004:0> exit #退出
至此,再次登錄,就需要使用新密碼yourpassword進行登錄了。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。