一、部署gitlab 這裡使用的是Centos8,安裝Docker環境 ,這裡不說了,參考:https://www.cnblogs.com/wei325/p/15139701.html gitlab有ce版和ee版,ce版為免費版本;ee版為企業版本,需要收費;企業使用ce版足夠了,這裡用ce版。 ...
一、部署gitlab
這裡使用的是Centos8,安裝Docker環境 ,這裡不說了,參考:https://www.cnblogs.com/wei325/p/15139701.html
gitlab有ce版和ee版,ce版為免費版本;ee版為企業版本,需要收費;企業使用ce版足夠了,這裡用ce版。
1)拉取Gitlab鏡像
docker pull gitlab/gitlab-ce
2)啟動Docker
先建3個目錄用於把gitlab的文件掛載出來
#安裝程式目錄 mkdir -p /home/gitlab/etc #數據目錄 mkdir -p /home/gitlab/opt #日誌目錄 mkdir -p /home/gitlab/log
啟動docker
docker run \ -itd \ -p 8180:80 \ -p 8122:22 \ -v /home/gitlab/etc:/etc/gitlab \ -v /home/gitlab/log:/var/log/gitlab \ -v /home/gitlab/opt:/var/opt/gitlab \ --restart always \ --privileged=true \ --name gitlab \ gitlab/gitlab-ce
8180埠:gitlab管理頁面埠
8122埠:SSH埠,拉代碼時的埠
-v xxx:把Docker裡面的目錄映射到本機上
查看啟動的gitlab
3)修改配置
docker安裝gitlab,創建項目時,預設項目URL訪問地址顯示的是容器主機地址(容器id),所以我們需要修改為一個固定可以外部訪問的地址及宿主機地址,這樣才可以進行pull/push代碼
vi /home/gitlab/etc/gitlab.rb # 取消external_url註釋,地址為宿主機地址,不需要設置埠 external_url 'http://1.15.63.120' #ssh主機ip gitlab_rails['gitlab_ssh_host'] = '1.15.63.120' #ssh連接埠 gitlab_rails['gitlab_shell_ssh_port'] =8122 # 重載服務 [root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl reconfigure [root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl restart
4)修改root密碼
啟動docker後,gitlab已經能訪問了,但還沒有設置密碼
# 進入容器內部 docker exec -it gitlab /bin/bash # 進入控制台 gitlab-rails console -e production # 查詢id為1的用戶,id為1的用戶是超級管理員 user = User.where(id:1).first # 修改密碼為root123456 user.password='root123456' # 保存 user.save! # 退出 exit
設置完再去登錄,就能登錄成功了!
5)伺服器卡頓問題解決
這裡用的是騰訊雲伺服器,2核4G,因為gitlab會用比較多的記憶體和cpu,這個配置裝了後伺服器變得卡頓,解決辦法。
1、創建swap分區
#查看swap分區情況,如果看到沒有東西就是沒有swap分區 cat /proc/swaps #創建swap分區,註意:創建swap大小為bs*count=4294971392(4G),/data/swap目錄若無則找/mnt/swap dd if=/dev/zero of=/data/swap bs=512 count=8388616 #把上文件的文件做成swap分區 mkswap /data/swap #cat /proc/sys/vm/swappiness,如果不是60,則設置 sysctl -w vm.swappiness=60 #啟用swap分區 swapon /data/swap echo “/data/swap swap swap defaults 0 0” >> /etc/fstab #再次查看swap分區 cat /proc/swaps
2、修改配置把進程數據變少
在掛載出來的本機文件上改,目錄為/home/gitlab/etc/gitlab.rb,修改完重啟容器生效
vi /home/gitlab/etc/gitlab.rb #把下麵3個取消註釋,工作進程減少,最低為2 puma['worker_processes'] = 2 puma['min_threads'] = 2 puma['max_threads'] = 2 # 重載服務 [root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl reconfigure [root@vanje-dev01 ~]# docker exec -t gitlab gitlab-ctl restart
做完這些,伺服器占用資源就降下來了,也不會卡頓了。
二、使用gitlab
1)設置關閉自動創建賬號功能
gitlab預設是開放註冊賬號功能的,在企業裡面使用是不允許的,用戶的賬號是通過管理員創建出來的
管理員登錄進後臺
2)創建項目
3)創建用戶,組群,給項目許可權
把用戶test加入到Test.Demo的項目裡面
成功把用戶加了進來
GitLab用戶許可權管理:
GitLab用戶在組中有五種許可權:Guest、Reporter、Developer、Maintainer、Owner
1.Guest:可以創建issue、發表評論、不能讀寫版本庫
2.Reporter:可以克隆代碼,不能提交,QA、PM可以賦予這個許可權
3.Developer:可以克隆代碼、開發、提交、push、研發人員可以賦予這個許可權
4.Maintainer:可以創建項目、添加 tag 、保護分支、添加項目成員、編輯項目、核心研發負責人可以賦予這個許可權
5.Owner:可以設置項目的訪問許可權-Visibility Level、刪除項目、遷移項目、管理組成員、項目經理,部門經理可以賦予這個許可權
三、Git拉取和提交GitLab代碼
1)安裝git客戶端
官網地址:https://git-scm.com/downloads/
下載後,一直下一步安裝即可。安裝完成後,桌面滑鼠右鍵能看到如下圖的兩個菜單
2)git生成SSH Key
git客戶端要連接倉庫,就要先生成ssh key,ssh key有公鑰和私鑰,生成後把公鑰填到git站點上,現在生成ssh key
點擊Git Bash Here
2.1設置用戶名
git config --global user.name 'test'
test為自己的用戶名,可以隨便填,註意提交記錄的時候會顯示這個用戶名,所以一般填員工的姓名好辨認誰提交了代碼
2.2設置郵箱
git config --global user.email '[email protected]'
這個郵箱也是可以隨便填,一般填員公在公司的郵箱
上兩步生成的信息會在C:\Users\賬號 下生成.gitconfig配置文件,特別註意此文件不能刪除,此文件記錄了賬號和郵箱。
2.3生成ssh key
ssh-keygen -t rsa -C “[email protected]”
填剛纔的郵箱,輸入後一直回車即可
生成的ssh key信息保存在 C:\Users\賬號下的.ssh文件夾里
3)把生成的公鑰填到gitlab
git客戶端要和gitlab連接,需要把公鑰裡面的內容填到gitlab上
回到gitlab,每個員工都會有獨立的ssh key,這裡我登錄test賬號,表示把本機的git和test賬號關聯
4)拉取項目和提交文件
4.1克隆項目
找到項目的ssh地址,也可以通過http地址
在本機上建一個文件夾放拉取的項目,在文件夾的路徑里打開 Git Bash
git clone ssh地址
第一次拉取時會報一個無法驗證主機真實性,輸入yes,然後會在 ssh key的文件夾下的kenown_hosts裡面生成gitlab信息,下次就不會詢問了。
克隆完成後,可以看到項目已經被拉下來了,因為是一個空項目,所以還沒有東西,只有一份描述文檔
4.2提交文件
我們新增加一個文件 abc.txt
現在的文件是在工作區,然後把文件add到暫存區
#把文件添加到暫存區 git add * #查看文件變化狀態 git status
4.3提交文件到本地倉庫
#提交修改到本地倉庫 git commit -m '提交一個文本文檔'
4.4把本地倉庫同步到遠程倉庫
因為這裡是一個main分支,developer不能推送到main分支,所以這裡給一下maintainer許可權給test用戶。正常企業裡面開發,開發人員只有開發分支(dev),
測試分支(test)的許可權,main分支只能看,不能提交代碼的,因為main分支要保持著隨時能發佈,不能簽提交代碼,要由項目負責人從測試分支(test)合併 代碼到main分支。
推送代碼
git push
這裡把本地倉庫同步到遠程倉庫,到遠程倉庫看一下就能看到提交記錄了
如果想拉取最新的代碼,則用git pull
到這裡gitlab部署和使用就完成了,git如果命令行方式覺得麻煩,則可以用小烏龜git的界面可視化操作
小烏龜git下載地址為:https://tortoisegit.org/download
其餘的開發IDE也都會自帶有git插件,這個就不多說啦。