前面我們已經搭建好了Gitlab服務,也講到了gitlab一些安全設置,但作爲用戶,該如何來使用gitlab呢?請看下文。
1、綁定hosts,使用notepad打開C:\Windows\System32\drivers\etc\hosts,綁定gitlab服務器的IP地址,映射成域名,方便記憶並訪問,如圖1所示。
192.168.59.250 gitlab.demo.com
圖1
完成上述hosts設置後,其實我們就可以通過訪問http://gitlab.demo.com來註冊gitlab賬號了。註冊賬號最好用公司郵箱,如公司給我分配的郵箱是 [email protected],我將使用該郵箱來註冊gitlab賬號,然後由配置管理員對 [email protected] 賬號分配相關倉庫權限。
管理員分配了相關組或者倉庫權限後,此時我們可以用自己的賬號登錄 http://gitlab.demo.com 查看相項目內容了。那是不是到此gitlab的操作就講完了呢?當然不是,如果想將項目克隆到本地,並在本地修改項目文件,最後又提交到gitlab服務器,對於這種操作,我們要藉助Git和TortoiseGit。
2、安裝Git以及GUI客戶端TortoiseGit和中文語言包。Git下載頁在Github上:https://github.com/git-for-windows/git/releases
GUI Clients 選擇TortoiseGit,對應下載鏈接如下:
https://download.tortoisegit.org/tgit/2.9.0.0/TortoiseGit-2.9.0.0-64bit.msi
https://download.tortoisegit.org/tgit/2.9.0.0/TortoiseGit-LanguagePack-2.9.0.0-64bit-zh_CN.msi
下載完成後,按1、2、3順序完成安裝,如圖2所示,安裝過程中相關設置均按默認即可。
圖2
3、成功安裝後,鼠標右鍵如圖3所示。
圖3
點擊TortoiseGit --> Setttings,可設置語言爲中文,點擊“應用”,如圖4所示。
圖4
然後,在“Icon Overlays“,選擇Shell Extended,如圖5,這樣設置的目的是當git倉庫中有文件發生變更時,文件圖標狀態也跟着變化,效果如圖6所示。
圖5
圖6
4、接下來再對Git做全局設置,以下命令用Git Bash完成,如圖7所示。
圖7
設置用戶名和郵箱地址(注意用自己註冊gitlab時的郵箱)
git config --global user.name "firefly"
git config --global user.email [email protected]
將color.ui 設置爲auto 可以讓命令的輸出擁有更高的可讀性。
git config --global color.ui auto
將credential.helper設置爲store,可以存儲用戶以及密碼,避免每次提交或拉取時要手動輸入用戶名和密碼。
git config --global credential.helper store
上述git config命令將會在用戶家目錄下(Windows是C:\Users\xusers,Linux是~/.gitconfig)下生成.gitconfig文件,內容如下。
cat .gitconfig
[user]
name = firefly
email = [email protected]
[credential]
helper = store
[color]
ui = auto
如果想再更改這些信息,可以直接編輯.gitconfig文件,如圖8所示。這裏設置的姓名和郵箱地址會用在Git 的提交日誌中。由於在GitHub 上公開倉庫時,這裏的姓名和郵箱地址也會隨着提交日誌一同被公開,所以請不要使用不便公開的隱私信息。
圖8
完成上述設置後,我們就可以使用HTTP方式操作gitlab的倉庫了,先複製項目的HTTP的克隆地址,如圖9所示。
圖9
使用TortoiseGit來clone倉庫,如圖10所示,選擇“Git 克隆"。
圖10
粘貼板會自動將要克隆的地址填入,如圖11所示。
圖11
點擊”確定“,會提示輸入用戶名和密碼,如圖12所示。
圖12
密碼輸入正確後,將完成項目克隆到本地的操作,如圖13所示。
圖13
重要說明:如果在上述操作過程中輸錯了用戶名或密碼,點擊”確定“時會提示用戶名或密碼不正確,但不會再彈出輸入用戶名密碼的對話框,此時就得到”控制面板“-->”用戶賬戶"-->"憑據管理"-->"管理Windows憑據",刪除對應的憑據即可,如圖14所示。
圖14
圖15
commit+push操作對應SVN的commit。因爲Git的commit是先提交到本地倉庫,然後再push到gitlab服務器。即git的提交修改操作均保存在本地,不需要連gitlab服務器也可以查看歷史修改記錄。而SVN不行,如圖16所示。
圖16
5、完成上述操作後,就已基本滿足我們日常工作需求了。但作爲一名開發人員,如果不會SSH訪問git倉庫的話,下次要是被新入職客戶端MM請教會不會就錯失了告別單身的機會(哈哈),正所謂技多不壓身。
使用ssh-keygen命令生成密鑰文件,id_rsa文件是私鑰,id_rsa.pub是公鑰。
ssh-keygen -t rsa -C [email protected]
使用上面命令,直接回車,完成密鑰生成,如圖17所示。
圖17
複製id_rsa.pub文件中內容並添加到git賬戶[email protected]用戶下,如圖18所示。
圖18
使用firefly賬戶登錄網頁版gitlab服務,在Settings --- SSH Keys中添加id_rsa.pub中的公開密鑰,然後點擊“Add key”,如圖19所示。
圖19
由於gitlab服務器ssh端口不是使用默認的22,而是6688,我們還需要創建C:\Users\tgh\.ssh\config文件(如果有多臺gitlab服務器,均可以在config文件中添加),如圖20所示。
cat >>.ssh/config <<EOF
host gitlab.demo.com
hostname 192.168.59.250
port 6688
EOF
圖20
好啦,我們可以使用ssh方式來克隆項目了,如圖21所示,先複製要克隆的項目地地址。
圖21
注意,使用ssh方式克隆項止,URL是以git@開頭,如圖22所示
圖22
點擊”確定“,如圖23所示,我x,又報錯啦,捂臉好尷尬。
圖23
可千萬別被小小的報錯給嚇到,我們只需要再設置一下TortoiseGit的網絡,更改一下SSH客戶端,如圖24爲修改前路徑,圖25爲修改後路徑,即我們要用Git自帶的SSH客戶端來解決這個報錯。
圖24
圖25
完成設置後,我們再來嘗試克隆一下,如圖26,圖27所示,順利完成。
圖26
圖27
碰到問題不迴避,這樣,我們離大神和女神都更近了一步^_^,加油。