[轉(zhuǎn)]Gitlab的使用

Gitlab的使用

最近成功的在公司部署了gitlab,鑒于同學(xué)們還不會(huì)使用,這里寫篇博客說(shuō)明下。如果想安裝gitlab的話,需要一些linux的基礎(chǔ)知識(shí),我在這里記錄了我安裝的參考《http://www.cnbluebox.com/?p=378

1.什么是git

鑒于有同學(xué)還沒(méi)用過(guò)Git,就先介紹一下git吧。git就是一種版本控制工具。說(shuō)到版本控制,大家可能就想到了svn。但是兩者有著本質(zhì)的區(qū)別。

svn是集中化的版本控制系統(tǒng), 只有一個(gè)單一的集中管理的服務(wù)器,保存所有文件的修訂版本,而協(xié)同工作的人們都通過(guò)客戶端連到這臺(tái)服務(wù)器,取出最新的文件或者提交更新。

git是分布式的版本控制系統(tǒng), 每一個(gè)終端都是一個(gè)倉(cāng)庫(kù),客戶端并不只提取最新版本的文件快照,而是把原始的代碼倉(cāng)庫(kù)完整地鏡像下來(lái)。每一次的提取操作,實(shí)際上都是一次對(duì)代碼倉(cāng)庫(kù)的完整備份。

集中式版本控制:

分布式版本控制:

2.GitLab創(chuàng)建工程

點(diǎn)擊導(dǎo)航條上的 “+” 就可以進(jìn)入創(chuàng)建工程頁(yè)面

這里面很簡(jiǎn)單,主要講兩個(gè)地方:

2.1 namespace

這個(gè)選擇是用來(lái)決定這個(gè)工程所屬的,可以選User為你自己。或者選擇組,這個(gè)會(huì)影響到后面工程的url。例如我選擇了組suning創(chuàng)建工程SuningTest、 那么這個(gè)工程就會(huì)在這個(gè)組內(nèi)可見(jiàn),那么訪問(wèn)路徑就是https://domain.com/suning/suningtest

2.2 Visibility Level

權(quán)限等級(jí)分三種:

Private 私有的,只有你自己或者組內(nèi)的成員能訪問(wèn)

Internal 所有登錄的用戶

Public 公開(kāi)的,所有人都可以訪問(wèn)

3.Git的使用

3.1 添加sshkey

git倉(cāng)庫(kù)之間的代碼傳輸協(xié)議主要使用ssh協(xié)議。而一般搭建gitlab的時(shí)候使用的git用戶是沒(méi)有密碼的,因此直接ssh是不能登錄的,就需要使用ssh-keygen上傳公鑰,使用非對(duì)稱加密傳輸。下面講述如何上傳你的ssh公鑰:

3.1.1生成sshkey

在終端中敲下面的命令,第一步會(huì)生成一對(duì)私鑰和公鑰,分別存在~/.ssh/id_rsa和~/.ssh/id_rsa.pub中。第二步查看公鑰字符串。

ssh-keygen -t rsa -C "$your_email"

cat ~/.ssh/id_rsa.pub

3.1.2保存sshkey到gitlab

在面板上依次點(diǎn)擊Profile Settings –> SSH Keys –> Add SSH Keys。然后把上一步中的id_rsa.pub中的內(nèi)容拷貝出來(lái)粘貼到輸入框中,保存。

完成上面兩步之后就成功的添加了sshkey了,然后就可以上傳代碼了。

3.2 初始上傳代碼

如果你已經(jīng)使用過(guò)git了,那么這一步對(duì)你來(lái)說(shuō)可以跳過(guò)了。整體來(lái)說(shuō)比較簡(jiǎn)單的。下面的$project_root代表工程根目錄

進(jìn)入工程目錄cd $project_root

初始化git倉(cāng)庫(kù)git init

添加文件到倉(cāng)庫(kù)git add .

提交代碼到倉(cāng)庫(kù)git commit -m 'init commit'

鏈接到git servergit remote add origin git@example.com:namespace/projectname.git

push代碼到服務(wù)器git push origin master

3.3 克隆代碼到本地

在svn中,我們都叫checkout. 把代碼checkout到本地。而git中我們叫克隆,克隆會(huì)把整個(gè)倉(cāng)庫(kù)都拉到本地。

如,我要把剛才的工程再clone到本地。

git clone git@example.com:namespace/projectname.git

3.4 設(shè)置gitignore

有一些文件或文件夾是我們不想要被版本控制的,比如.DS_Store build\ xcuserdata thumbs.db,git提供了一種忽略的方案。

在項(xiàng)目根目錄下創(chuàng)建.gitignore文件,然后把需要忽略的文件或文件夾名寫進(jìn)去。這樣就可以忽略這些文件受版本控制啦。

svn也提供了這樣忽略的方案,svn也可以設(shè)置全局忽略。svn的此配置放在~/.subversion/config中g(shù)lobal-ignores的值。

通過(guò)設(shè)置ignore,我們可以實(shí)現(xiàn)git和svn雙管理哦,就是在svn忽略.git文件夾,在gitignore中忽略.svn文件夾,有興趣的同學(xué)可以試試

3.5 git文件的狀態(tài)

git管理下的文件有3種狀態(tài),如下圖:

3.6 git基礎(chǔ)

git博大精深,個(gè)人感覺(jué),不管是從其強(qiáng)大的功能上,還是從其實(shí)現(xiàn)方案上來(lái)講比svn強(qiáng)大很多。這里貼個(gè)學(xué)習(xí)鏈接吧,這一系列講的非常全面非常詳細(xì):

Git基礎(chǔ)

3.7 圖形化git管理工具

如果說(shuō)你不喜歡命令行的使用方式,你也可以使用圖形界面工具SoureTree:http://www.sourcetreeapp.com/界面簡(jiǎn)潔,使用方便,功能強(qiáng)大。

貼個(gè)預(yù)覽:

原文地址:http://blog.cnbluebox.com/blog/2014/04/15/gitlabde-shi-yong/

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容