Gitlab項目配置

前言

Gitlab可以用來搭建Git倉庫服務器端,具有很好的項目管理和用戶管理功能,目前Gitlab服務端主要部署在Linux相關平臺,Window平臺還沒有對應的部署包。筆者通過在VMWare Redhat Linux上安裝Gitlab服務器來實現代碼的版本控制功能,RedHat默認源由於GFW的問題都無法正常請求到Gitlab包,可以在百度上搜索清華Redhat源,很快就能夠下載好需要的軟件包,之後在用rpm命令安裝Gitlab包,具體安裝過程可以參考Gitlab安裝與配置

密碼配置

Gitlab安裝之後默認使用的用戶名是root,而且有一個默認的密碼,不過在安裝的過程中臨時設置了一下後面忘記密碼,直接就無法登錄了,這裏介紹一種能夠修改默認密碼的方法。

// 打開命令行輸入su命令切換到root用戶下,接着輸入gitlab-rails console
[zxz@localhost ~]$ su
密碼:
[root@localhost zxz]# gitlab-rails console
-------------------------------------------------------------------------------------
 Gitlab:       10.8.3 (564c342)
 Gitlab Shell: 7.1.2
 postgresql:   9.6.8
-------------------------------------------------------------------------------------
Loading production environment (Rails 4.2.10)

irb(main):007:0> user = User.where(id: 1).first
=> #<User id:1 @root>
irb(main):008:0> user.password=12345678
=> 12345678
irb(main):009:0> user.password_confirmation=12345678
=> 12345678
irb(main):010:0> user.save!
Enqueued ActionMailer::DeliveryJob (Job ID: f629a2a7-ecb8-4a6f-ab49-da53f98af580) to Sidekiq(mailers) with
arguments: "DeviseMailer", "password_change", "deliver_now", gid://gitlab/User/1
=> true
irb(main):011:0> quit

需要注意的是確保第一行User.where返回的user一定不能爲空,爲空就需要換其他的方式查找默認用戶,password和password_confirmation要完全一樣不少於8個字符,密碼字符串不需要添加引號否則會報錯。

項目配置

這時候在Redhat的火狐瀏覽器中輸入localhost就能夠訪問gitlab的服務端網站,輸入賬戶名root和密碼12345678登錄進入管理界面。界面中主要包含Project項目管理、User用戶管理、Group羣組管理和Gitlab配置四個大部分,這裏首先創建一個Group羣專門負責基礎組件添加和維護,接着增加新的用戶並且添加到基礎組件羣組中,最後添加一個基礎組件項目並且指定由羣組中某些成員負責維護。

這裏寫圖片描述

創建羣組

羣組主要的目的是聚合一羣用戶和它們維護的項目,只要在如下的界面中添加羣組相關信息最後點擊創建就可以了。

這裏寫圖片描述

創建用戶

創建完羣組後就需要創建用戶賬號,通常在企業裏都是員工向管理源請求加入某個羣組,管理員會根據員工提供的個人系信息直接創建賬號,並且將賬號添加到對應的羣組中。

這裏寫圖片描述

創建項目

最後一步就是創建項目,項目的創建也很簡單可以在之前創建的羣組裏添加項目,這樣整個項目就歸所在羣組維護,可以爲項目增加各種維護人員,需要注意的是項目裏的master分支等特殊分支developer用戶無法更新,只有master用戶纔有權限更新。

這裏寫圖片描述

本地配置

前面已經完成了服務器端的項目配置,需要在客戶端安裝git程序,這裏也不再贅述,安裝完git程序之後就需要配置用戶名和用戶賬號。

git config --global user.name "xxx"
git config --global user.email "[email protected]"

如果用戶直接使用git和遠程倉庫交互需要每次都輸入自己密碼,這樣很不方便,可以在本地配置ssh客戶端生成公鑰和私鑰,將公鑰提交到服務器上,注意生成公鑰的時候一定要使用自己註冊的帳號。先手動生成SSH的公私鑰對,公鑰需要放到服務器端,私鑰放在本地使用。啓動git bash命令行輸入命令ssh-keygen -t rsa -C “[email protected]”,命令行交互會要求輸入密碼,不用輸入直接點擊回車,確認密碼也直接輸入回車。命令執行完畢到Admistrator目錄下的.ssh文件夾下查看。

這裏寫圖片描述

id_rsa文件裏放的就是私鑰數據,id_rsa.pub文件就是公鑰數據。用notepad打開id_rsa.pub文件拷貝里面的數據。打開techgit系統選中自己的頭像,點擊Settings選項。

這裏寫圖片描述

本地賬號都已經配置完成,接着就開始爲本地項目添加遠程git倉庫路徑,並且執行push操作將本地的代碼都發送到遠程倉庫裏,可以看到第一次添加代碼表示當前用戶沒有向master分支修改代碼的權限,請求管理員修改當前用戶的權限即可。

git remote add origin http://172.18.64.200/common/myproject.git

git push origin HEAD
Counting objects: 1242, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1208/1208), done.
Writing objects: 100% (1242/1242), 3.87 MiB | 1.58 MiB/s, done.
Total 1242 (delta 297), reused 0 (delta 0)
remote: Resolving deltas: 100% (297/297), done.
remote: GitLab: You are not allowed to push code to protected branches on this project.
To http://172.18.64.200/common/myproject.git
 ! [remote rejected] HEAD -> master (pre-receive hook declined)
error: failed to push some refs to 'http://172.18.64.200/common/myproject.git'

可以看到用戶被提升權限之後再次提交代碼就成功了。

git push origin HEAD
Counting objects: 1242, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (1208/1208), done.
Writing objects: 100% (1242/1242), 3.87 MiB | 406.00 KiB/s, done.
Total 1242 (delta 297), reused 0 (delta 0)
remote: Resolving deltas: 100% (297/297), done.
To http://172.18.64.200/common/myproject.git
 * [new branch]      HEAD -> master

Git會忽略空的文件夾,如果你想版本控制包括空文件夾,根據慣例會在空文件夾下放置.gitkeep文件。其實對文件名沒有特定的要求。一旦一個空文件夾下有文件後,這個文件夾就會在版本控制範圍內。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章