Gitlab 是 Git 服務(wù)端的集成管理平臺,提供了:
1盯串、代碼托管服務(wù)
2氯檐、訪問權(quán)限控制
3、問題跟蹤体捏,bug的記錄冠摄、跟蹤和討論
4、Wiki几缭,項(xiàng)目中一些相關(guān)的說明和文檔
5河泳、代碼審查,可以查看年栓、評論代碼
GitLab 是一個(gè)用于倉庫管理系統(tǒng)的開源項(xiàng)目拆挥,使用Git作為代碼管理工具,并在此基礎(chǔ)上搭建起來的web服務(wù)某抓。如果通過網(wǎng)頁注冊gitlab纸兔,允許免費(fèi)將project設(shè)置為私有黄锤,不對外開放。而github設(shè)置為私有需要付費(fèi)食拜。可以在自己的遠(yuǎn)程服務(wù)器上搭建gitlab副编,提交的code保存在自己的遠(yuǎn)程服務(wù)器负甸。搭建好的gitlab對局域網(wǎng)外的人是不可見的。而push到github的code是只能托管在別人服務(wù)器上的痹届。作為項(xiàng)目管理者可以邀請開發(fā)成員呻待,各開發(fā)成員只能將code push到遠(yuǎn)程服務(wù)器的分支,不能push到遠(yuǎn)程服務(wù)器的master分支(master分支是受保護(hù)分支)队腐,只有項(xiàng)目管理者才可以push到遠(yuǎn)程服務(wù)器的master分支蚕捉。被邀請的開發(fā)成員只能看到被邀請開發(fā)的項(xiàng)目code,看不到其他項(xiàng)目的code柴淘。
訪問權(quán)限:
這個(gè)是在建立項(xiàng)目時(shí)就需要選定的迫淹,主要用于決定哪些人可以訪問此項(xiàng)目,包含3種:
Private - 私有为严,只有屬于該項(xiàng)目成員才有原先查看
Internal - 內(nèi)部敛熬,用個(gè)Gitlab賬號的人都可以clone
Public - 公開,任何人可以clone
角色:
Gitlab定義了以下幾個(gè)角色:
Guest - 訪客
Reporter - 報(bào)告者; 可以理解為測試員第股、產(chǎn)品經(jīng)理等应民,一般負(fù)責(zé)提交issue等
Developer - 開發(fā)者; 負(fù)責(zé)開發(fā)
Master - 主人; 一般是組長,負(fù)責(zé)對Master分支進(jìn)行維護(hù)
Owner - 擁有者; 一般是項(xiàng)目經(jīng)理
一夕吻、建立group和project
在gitlab上創(chuàng)建group和project都很容易诲锹,只需要登入自己搭建的gitlab,然后點(diǎn)擊下圖中所示的create a group
進(jìn)入創(chuàng)建頁面后涉馅,在圖中標(biāo)記1的地方給group取一個(gè)名字归园,在標(biāo)記2的地方為group上傳(也可不上傳)一張配圖,在標(biāo)記3的地方設(shè)置權(quán)限稚矿,我這里設(shè)置的是private蔓倍,也就是對非group成員是不可見的,最后點(diǎn)擊create group就創(chuàng)建成功了盐捷。
group創(chuàng)建完后偶翅,就會自動跳轉(zhuǎn)到創(chuàng)建project的頁面,點(diǎn)擊create project碉渡。
project創(chuàng)建好后聚谁,網(wǎng)頁會自動跳轉(zhuǎn)到設(shè)置頁面,如下圖所示滞诺,首先寫上project的名字形导,然后設(shè)置權(quán)限环疼,團(tuán)隊(duì)項(xiàng)目一般設(shè)置為private,還有一點(diǎn)要注意的是朵耕,是否將這個(gè)project初始化為一個(gè)repository炫隶,如果是想將他建一個(gè)新倉庫,就給它勾上阎曹,最后點(diǎn)擊create project伪阶,project就創(chuàng)建成功了。
二处嫌、為project添加members
project創(chuàng)建好后栅贴,進(jìn)入project頁面,在左下角有一個(gè)settings熏迹,如下圖示
然后點(diǎn)擊members檐薯,就會進(jìn)入到下面的頁面,在標(biāo)記1的地方填上members的郵箱注暗,在標(biāo)記2的地方設(shè)置members的權(quán)限坛缕,如果是一起開發(fā)項(xiàng)目,一般就設(shè)置為developer捆昏。
如果你的group下面有多個(gè)project祷膳,比如有project1,project2屡立,project3直晨,而你的project1邀請了A和B,project2邀請了B和C膨俐,那么members A在自己的gitlab主頁就可以看到project1勇皇,B可以看到project1和project2,C只能看到project2焚刺。如下圖所示
三敛摘、各members如何提交code
1、首先給project添加一個(gè)分支乳愉,因?yàn)閙aster分支是受保護(hù)的兄淫,各個(gè)members是不能push到master的,只能push到branch蔓姚。如下圖所示捕虽,Branch(1)表示目前只有master分支,點(diǎn)擊它創(chuàng)建一條新分支
新分支的名字自己隨意取坡脐,記住下面還有一條create from泄私,表示當(dāng)前這條分支來自于那條分支。
2、各members通過git clone “path”從服務(wù)器上拉取project晌端,path的真實(shí)值可以在project頁面中看到捅暴。
3、輸入git branch這時(shí)可以看到有一個(gè)master分支咧纠,在輸入git checkout branch-0.1蓬痒,然后在輸入git branch,就可以看到有兩條分支了漆羔,如下圖示梧奢。
4、各members在branch-0.1上開發(fā)完后钧椰,就可以push了,記住作為members只能將本地code push到遠(yuǎn)程branch符欠,不能push到遠(yuǎn)程master嫡霞。
git pull的一般形式為 git pull <遠(yuǎn)程主機(jī)名> <遠(yuǎn)程分支名>:<本地分支名>
git push的一般形式為 git push <遠(yuǎn)程主機(jī)名> <本地分支名>:<遠(yuǎn)程分支名>
本地master push到遠(yuǎn)程branch-0.1:
git checkout master //切換到master分支
git pull origin branch-0.1 //將遠(yuǎn)程branch-0.1分支fetch+merge到當(dāng)前所在分支
git push -u origin master:branch-0.1 //將本地master分支push到遠(yuǎn)程branch-0.1分支
本地branch-0.1 push到遠(yuǎn)程branch-0.1:
git checkout branch-0.1
git pull origin branch-0.1
git push -u origin branch-0.1:branch-0.1
這里的origin表示本地,branch-0.1表示遠(yuǎn)程分支名字
5希柿、作為這個(gè)project的maintainer最后將branch合并到master诊沪。
很簡單,只需要在每次push前先將遠(yuǎn)程服務(wù)器上的project pull一下曾撤,然后再push到master端姚。
git checkout master
git pull
git merge --no-ff branch-0.1 -m "寫上你的備注"
git push -u origin master