Gitlab使用手冊資料_第1頁
Gitlab使用手冊資料_第2頁
Gitlab使用手冊資料_第3頁
Gitlab使用手冊資料_第4頁
Gitlab使用手冊資料_第5頁
已閱讀5頁,還剩12頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

Gitlab運(yùn)用手冊

書目

一Gitlab賬號/庫申請流程3

l.lGitlab賬號申請3

1.2Gitlab庫申請3

二Gitlab登錄3

2.1Gitlab訪問路徑3

2.2Gitlab登錄頁面3

三Git環(huán)境配置4

3.1創(chuàng)建公鑰4

3.1.1Linux環(huán)境4

3.1.2Windows環(huán)境4

aiXMacOS環(huán)境7

3.2GitlabSSH頁面配置7

四Git操作吩咐8

4.1Git本地倉庫操作吩咐8

4.1.1gitinit/gitclone初始化庫8

4.1.2gitstatus查看狀態(tài)9

4.1.3gitadd添力口文件9

4.1.4gitdiff對比文件9

4.1.5gitcommit提交更新10

4.1.6gitrm移除文件10

4.1.7gitmv移動文件11

4.1.8gitlog查看提交歷史11

4.1.9gitreset撤銷操作12

4.1.10gitbranch創(chuàng)建分支13

4.1.11gitmerge分支合并13

4.1.12gitconflict解決沖突14

4.1.13gittag創(chuàng)建標(biāo)簽14

4.2Git遠(yuǎn)程倉庫關(guān)聯(lián)操作吩咐15

4.2.1gitremote查看遠(yuǎn)處倉庫15

4.2.2gitremoteshow查看遠(yuǎn)程倉庫信息15

4.2.3gitremoteadd添加遠(yuǎn)程倉庫15

4.2.4gitfetch從遠(yuǎn)程倉庫抓數(shù)據(jù)16

4.2.5gitpull獲得最新版本16

4.2.6gitpush推送數(shù)據(jù)到遠(yuǎn)程倉庫16

4.2.7gitremoterename/rm遠(yuǎn)程倉庫重命名/刪除17

Gitlab賬號/庫申請流程

1.1Gitlab賬號

運(yùn)用郵箱前綴、郵箱密碼訪問艮」可。

1.2Gitlab庫申請

郵件申請。(發(fā)郵件給zhaoweiz@、cuixfl@)

二Gitlab登錄

2.1Gitlab訪問路徑

URL:/

2.2Gitlab登錄頁面

Existinguser?Signin

LDAPIStandard

cuixfl郵箱前綴

麻箱密碼

LDAPSignin

三Git環(huán)境配置

3.1創(chuàng)建公鑰

不同操作系統(tǒng)創(chuàng)建公鑰的方式不同。以下是三種操作系統(tǒng)的舉例。

3.1.1Linux環(huán)境

$ssh-keygen〃生成公鑰

$cat~/.ssh/id_rsa.pub〃將公鑰文件內(nèi)容拷貝到Gitlab配置頁面中。見3.2節(jié)。

留意:Vim文件復(fù)制粘貼可能會導(dǎo)致內(nèi)容換行,導(dǎo)致公鑰無效。

3.1.2Windows環(huán)境

須要下載msysgit和tortoisegit客戶端

第一步,下載msysgit并安裝。(基本上一路Next。因?yàn)槲覀冞€要安裝tortoisegit,所以不須要

選擇"Windowsexplorerintegrationw<>)

URL:s://code.google

/p/msysgit/downloads/list?can=2&q=%22Full+installer+for+official+Git+for+Windows%22

或者公司共享書目:\\devshare\工具共享、常用軟件\git

其次步,下載tortoisegit并安裝

URL:

或者公司共享書目:\\devshare\工具共享、常用軟件\git

第三步,在tortoisegit上配置msysgit的路徑(見下圖)

創(chuàng)建公鑰的方式(二者選一即可)

(1)通過tortoiseGit方式生成公鑰

a)從Windows起先菜單選擇TortoiseGit,點(diǎn)擊其下的Puttygen工具,該工具用于生成Putty

支持的SSH密匙對。

.TortoiseGit

4'Help

■Notepad2

色Pageant

PuttygerT二>

幺'Settings

叢TortoiseGitBlame

的TortoiseGitlDiff

*TortoiseGitMerae

b)點(diǎn)擊Generate按鈕,即生成公鑰和私鑰。將Publickey(公匙)ftPrivatekey(私匙)

都保存到文檔中,以免丟失。其中Privatekey是你的TortoiseGit用來驗(yàn)證用戶身份。

寸PuTTYKeyGenerator

說明:

1.生成key的類型:SSH-2RSA

說明:

1.將生成的Publickey粘貼到GitLab站點(diǎn)“申請者帳號”里。配置方式見3.2節(jié)。(由于

tortoisegit生成的公鑰粘貼到@tlabSSHKe『中并不能夠自動生成,title,,因此須要自

己填寫一個“title,)

AddanSSHKey

Pasteyourput*ckeyhereReadmoteabouthewlogenerateakeyontheSSHhHppage

Keyfrtfwsa

AAAA83ISC1yc2EAAAAejQAAAJeKgcCr^.Mhzy3Q7FXE5OJMjHccxn1NHKMM叫

3Y&WHoh3?Cv1%?xKMkOWHWQ^3ReevN5RYbmQgWkaZyzUEK)oYlrpyONQiOGyWQurekey.20140617

2.保存"Saveprivatekey”至懷地。

(2)通過吩咐行方式生成公鑰

a)點(diǎn)擊'起先',在搜尋中輸入'cmd\

x

b)$ssh-keygen〃生成公鑰

c)將生成的Publickey粘貼到GitLab站點(diǎn)“申請者帳號”里。配置方式見3.2節(jié)。

3.1.3MacOS環(huán)境

$ssh-keygen〃生成公鑰

$cat~/.ssh/id_rsa.pub〃將公鑰文件內(nèi)容拷貝到Gitlab配置頁面中。見3.2節(jié)。

3.2GitlabSSH頁面配置

Gitlab"AddSSHKey”界面如下:

SSHKeys(1)

Adminhtfato^JZZJ^(?23bb365X“9a502d9**68fM4?冉added2days

將3.1節(jié)創(chuàng)建的公鑰拷貝到"Key〃方框中:

.Profile。08?▲,?

(jSHKey*。DesignGroupsHi?o?y

AddanSSHKey

PasteyourpubbckeyhereReadmoreabouthawtogenerateakeyontheSSHhelppage

四Git操作吩咐

4.1Git本地倉庫操作吩咐

gitinit/gitclone【初始化庫】

gitstatus【查看狀態(tài)】

gitadd【添加文件】

gitdiff【對比文件】

gitcommit【提交更新】

gitrm【移除文件】

gitmv【移動文件】

gitlog【查看提交歷史】

gitreset【撤銷操作】

gitbranch【創(chuàng)建分支】

gitmerge【分支合并】

gitconflict【解決沖突】

gittag【創(chuàng)建標(biāo)簽】

4.1.1gitinit/gitclone初始化庫

>初始化一個新庫

$gitinit

>從現(xiàn)有倉庫克隆

$gitcloneURL

4.1.2gitstatus查看狀態(tài)

>若沒有可跟蹤的文件,用gitstatus吩咐,則會輸出:

[root@vmll020031testl006]#gitstatus

#onbranchmaster?

#

#initialcommit

#

nothingtocommit(create/copyfilesanduse“gitadd"totrack)

>若編輯一個新文件hi.txt,保存退出。用gitadd吩咐跟蹤文件后運(yùn)行g(shù)itstatus吩咐,則

輸出:

Croot@vmll020031testlOOG]#gitaddhi.txt

Croor@vmll020031tesrlOO6]#girstatus

#onbranchmaster

#

#ini11alcommit

#

#Changestobecommitted:

#(use"gitrm——cached-<f11e>..."TOunstage^

#new"fi1e:hi.txr

說明:只要在“Changest。becommitted”下面,就表示為已暫存狀態(tài)。

>若修改已經(jīng)暫存狀態(tài)的文件,保存退出后用gitstatus吩咐,則會輸出:

[root(&vmll020031testlOO6J#gitsraxus

■Onbranchmaster

#inialcommit

*

#changestobecommitted:

#(use"g1rrm--cached.*'tounscage)

*

#newfile:hi.txx

#..

Changesnot^tagedforcommit:

#fuse**gitadd<fi1e>...*'toupdatewhatwillbecommitted)

#(use*'qitcheckout—ile>...**todiscardchangesinworkingdirectory)

*

#modified:hi.txr

說明:hi.txt文件出現(xiàn)了兩次!一次算未暫存,一次算己暫存。須要將未暫存的文件

通過gitadd添加到已暫存。

4.1.3gitadd添加文件

作用:

可以用它起先跟蹤新文件;

把已經(jīng)跟蹤的文件放到暫存區(qū)

合并時把有沖突的文件標(biāo)記為已解決狀態(tài)。

4.L4gitdi仟對比文件

作用:

當(dāng)前作的哪些更新還沒有暫存;

有哪些更新已經(jīng)暫存起來打算好了下次提交。

Croot@vmll020031testlOO6]#git

diff—gita/hi.txtb/hi.txt

-index19Oal8O..c25aO2b100644

a/hi.rxt

+++b/hi.txt

-1+1,2&&

123

+asd

Croot@vmll020031testlOO6]#Gtqa@_E.T,XT:

[root?vml.1.020031t:estl.OO6J-63t

說明:

有時候一下子暫存了全部更新過的文件后,運(yùn)行g(shù)ijdiff后卻什么也沒有。緣由是,gijdiff

僅顯示還沒有暫存起來的改動,而不是這次工作和上次提交之間的差異。

4.1.5gitcommit提交更新

在提交之前,肯定要用gitstatus確認(rèn)還有哪些修改過的或是新建的文件還沒有暫存起

來。否則,這些沒有暫存的文件就不能將最新改變提交到版本庫中。

參數(shù)介紹:

gitcommit-m運(yùn)用?m參數(shù)后跟提交說明的方式,在一行吩咐中提交更新

[root@vmll02(X)31testl006]#gitcommit-m"test"hi.txt

[master(root-commit)Ic4a7eb]test

1filechanged,2insertions(+)

Lcreat4e-m-o--d--e----1--00644h--i-.--t-=x't一一

gitcommit-a自動把全部已經(jīng)跟蹤過的文件暫存起來一并提交,跳過運(yùn)用暫存區(qū)域提

交更新

iIkJJBiCLII》UDCTvrV4CV4LUkJliiiilIV\U4DU切ILCXMVICXIIV4/WlCT

[root@vmll020031test[006]#gitcommit-a-m"test

[masterd72648e]test

2fileschanged,4deletions(-)

deletemode100644hi.txt

deletemode100644test.txt

4.1.6gitrm移除文件

刪除已提交的某個文件,須要先用gitrm吩咐從暫存區(qū)域中移除這個文件,然后再用git

commit吩咐提交。

IiVLiiiLUCOIIIIIIiLK11iuu11uiLUJyuieaii)

[root@vmll020031testlOO6J#11

total0

-rw-r——r——1rootroot0Nov615:15test.txt

[root@vmll020031testlOOG]#gitstatus

#Onbranchmaster?

nothingtocommit(workingdirectoryclean)

[root@vfnll020031testlOO6J#gitrmtest.txt

rm'test.txt'?

[root@vmll020031testl006]#gitstatus

#Onbranchmaster-?

#Changestobecommitted:

#(use"gitresetHEAD<file>..."tounstage)

#

#deleted!test.txt

*

[root@vmll020031testlOO6j#gitcommittest.txt-m"del

[masterb7d24ab]del

0fileschanged

deletemode100644test.txt

[root@vmll020031trst1006]#gitstatus.

#Onbranchmaster

nothingtocommit(workinqdirectoryclean)

4.1.7gitmv移動文件

Git中的重命名某個文件,倉庫中存儲的元數(shù)據(jù)并不會體現(xiàn)出這是一次改名操作。

文件改名并查看當(dāng)前狀態(tài):

root?x<mll020031testl0061#gitmvtest.txttest_to.txt

roox@vmll020031testlOO6j#girsrarus

#Eonbranchmaster

#changestobecommitted:

#(use"gitresetHEAD<f11e>..."tounstage)

*

#frenamed:test.txt->test_to.txt

*

運(yùn)行g(shù)itmv就相當(dāng)于運(yùn)行了下面三條吩咐:

$mvtest_from.txttest_to.txt

$gitrmtest_from.txt

$gitaddtest_to.txt

4.1.8gitlog查看提交歷史

每次更新都有一個SHA-1校驗(yàn)和、作者的名字和電子郵件地址、提交時間,最終縮進(jìn)一個

段落顯示提交說明。

[root@vmll020031testl006]#gitlog

commit055430106951c9794b967c75a2fb213dO3da2515

Author:zhaowei3<zhaowei3@staff.si.cn>

Date:TueNov614:48:592012+0800

committest

commitlc4a7e601293e3f97e654929a803d67f256e8b34

Author:zhaowei3<zhaowei3@staff.si.cn>

Date:TueNov614:38:132012+0800

test

常用查找歷史日志的選項(xiàng):

-p:項(xiàng)綻開顯示每次提交的內(nèi)容差異;

?n(數(shù)字):僅顯示最近的n次更新。

在做代碼審查,或者要快速閱讀其他協(xié)作者提交的更新都作了哪些改動時,就可以用這個選

項(xiàng)。

4.1.9gitreset撤銷操作

>取消己暫存的文件

若不當(dāng)心將某個文件添加/刪除到了暫存區(qū)域,可以用“gitresetHEAD<file>...”吩咐取消暫

存。

rroot@vmll020031testlOO61#gitaddh~i.txt:_

Lroot@vmll020031testl006J#gitstatus

#onbranchmaster

#changestobecommitted:

#(use"gitresetHEAD<file>..."tounstage)

#

#modified:hi.txt

#

[root@vml1020031testl006]#gitresetHEADhi.txt

unstagedchangesafterresets—

Mhi.txt

[root@vmll020031testl006]#gitstatus

#Onbranchmaster?

#Changesnotstagedforcommit:

#fuse"gitadd<file>..."toupdatewhatwillbecommitted)

#(use"gitcheckout—"todiscardchangesinworkingdirectory)

#

#modified:hi.txt

.

nochangesaddedtocommit(use-gitadd"and/or"gitcommit-a")

1C'CC__,CL、1CCU1M______________________________________________________

>修改最終一次提交

提交后發(fā)覺漏掉了一些文件,想要撤銷剛才的提交。若剛才提交完后沒有做任何改動,可以

運(yùn)用一amend選項(xiàng)重新提交。

[root?vmll020031testl006]#gitstatus

#Onbranchmaster—―?

#Changestobecommitted:

#(use"gitresetHEAD<file>..."tounstage)

#modified:hi.txt

#modified:test.txt

[root?vmi1020031rest1006]*g1icommit-m"fir?工工tesx.secondcommirhr*resx.xxii

[masterSdeblbf]firstcommittest,secondcommithi

1filechanged,1insertion,)

[root?vmll020031testl006]#gitstatus

*Onbranchmaster?

#Changestobecommitted:

#(use"g1tresetHEAD<file>.tounstage)

*

#modified:hi.txt

[root@vmll020031testl006]#gitcommit--amendhi.txt>

firstcommittest.secondcommithi

#Pleaseenterthecommitmessageforyourchanges.Linesstarting

#withwillbeignored,andanemptymessageabortsthecommit.

#Explicitpathsspecifiedwithout-1nor-o;assuming--onlypaths...

#onbranchmaster

#Changestobecommitted:

#(use"gitresetHEADAI"tounstage)

#

#modified:hi.txt

#modified:test.txt

>取消工作書目中已經(jīng)修改的文件

若已經(jīng)添加到暫存區(qū)域的文件又進(jìn)行了修改,但這些改動又覺得是沒有必要,則可以用“git

checkout-<file>...w復(fù)原到修改前的版本。

Ill?XUIWlIUUClI

[root@vmll020031test1006]#gitstatus

#onbranchmaster?

#changestobecommitted:

#(usetgitresetHEAD<f1le>..."tounstage)

#

#modified:hi.txt

*

#Changesnotstagedforcommit:

#Cuse"gitadd<file>...*'toupdatewhatwillbecommitted)

#(use"gitcheckout--<file>…"todiscardchangesinworki

*

#modified:hi.txt

$vimhi.txt

■■1?I八LJL」,《7JOl?VdI

[root@vmll020031testl006]#gitcheckout--hi.txt

[root@vmll020031testl006]#gitstatus

#onbranchmaster_______________

#changestobecommitted:

#(use"gitresetHEAD<file>..."tounstage)

*

#modified:hi.txt

4.1.10gitbranch創(chuàng)建分支

創(chuàng)建一個test分支,然后將書目切換到test分支下面。

一Jj??i?J—vrwTTmTit^iTTyJiiUJLDIyJ?ycii?/

[root@vmll020031testl006J#gitbranch

*master?

[root@vmll020031testl006]#gitbranchprol

[root@vmll020031testl006]#gitbranch

*master?

~pro!-

[root@vmll020031testl006]#gitcheckoutpro]

Switchedtobranch'prol'

[roor@vmll020031tesrl006]#gitbranch

master?

1rprol

留意:test分支前的字符:表示當(dāng)前所在的分支。

gitcheckout-b分支名

相當(dāng)于:

gitbranch分支名

gitcheckout分支名

4.1.11gitmerge分支合并

首先查看當(dāng)前書目全部分支清單,然后切換到master分支書目下,最終將prol分支內(nèi)容合

并到master上。

[root@vmll020031restl006]#gitcheckoutmaster

switchedrobranch'master'

[root@vmll020031testl006]#gitbranch

*master

prol

[root@vmll020031testl006]#gitmergeprol

updating90af0bl..33b41d9?

Fast-forward

hi.txt|1+

test.txt|1+

2fileschanged,2insertions(+)

4.1.12gitconflict解決沖突

>假如修改了兩個待合并的分支里同一個文件的同一個部分,則會出現(xiàn)如下報(bào)錯:

[root@vmll020031testl006]#gitmergeprol

Auto-mergingtest.txt?

CONFLICT(content):Mergeconflictintest.txt

Automaticmergefailed;fixconflictsandthencommittheresult.

>如何編輯沖突:

首先查看當(dāng)前書目下的狀態(tài)(gitstatus),然后編輯沖突文件(vimtest.txt),再將沖突文件置為

解決狀態(tài)(gitaddtest.txt),最終將合并的文件提交給(gitcommit-m”注釋”)。

沖突文件test.txt,打開后可以看到:

???<HEAD

bral-11111222

bral-qwerea

???>prol

說明:=======隔開的上半部分,是HEAD(即master分支)中的內(nèi)容,下半部分是在test

分支中的內(nèi)容。

4.1.13gittag創(chuàng)建標(biāo)簽

>列出全部標(biāo)簽

gittag

>搜尋標(biāo)簽

gittag-I標(biāo)簽名

>創(chuàng)建標(biāo)簽

gittag-a標(biāo)簽名-m注釋

4.2Git遠(yuǎn)程倉庫關(guān)聯(lián)操作吩咐

gitremote【查看遠(yuǎn)處倉庫】

gitremoteshow【杳看遠(yuǎn)程倉庫信息】

gitremoteadd【添加遠(yuǎn)程倉庫】

gitfetch【從遠(yuǎn)程倉庫抓數(shù)據(jù)】

gitpull【獲得最新版本】

gitpush【推送數(shù)據(jù)到遠(yuǎn)程倉庫】

gitremoterename/rm【遠(yuǎn)程倉庫重命名/刪除】

4.2.1gitremote查看遠(yuǎn)處倉庫

用gitremote吩咐,查看當(dāng)前配置有哪些遠(yuǎn)程倉庫。加上參數(shù)-v,可以列出全部的遠(yuǎn)程倉庫。

[root@vmll020031mysite]#gitremote

origin?

[root@vinll020031mysite]#gitremote-v

originhttps:///zhaowei1017/mysite.git(fetch)

origin/zhaoweil017/mysite.git(push)

Q-?八f八八f4?4n____________________________

參數(shù)介紹:

-v:可以列出全部的遠(yuǎn)程倉庫。

4.2.2gitremoteshow查看遠(yuǎn)程倉庫信息

[root@vmll020031mysite]#gitremoteshow

origin

[root@vmll020031mysite]#gitremoteshoworigin

*remoteorigin

FetchURL:/zhaoweilOlZ/mysite.git

PushURL:/zhaoweil017/mysite.git

HEADbranch:master

Remotebranches:

mastertracked

sinatracked

Localbranchconfiguredfor*gitpull':

mastermergeswithremotemaster

Localrefconfiguredfor'gitpush':

_masterpushesto_mawte匚(uptodate)

4.2.3gitremoteadd添加遠(yuǎn)程倉庫

若要添加一個新的遠(yuǎn)程倉庫,運(yùn)行g(shù)itremoteadd[shortname][url]

\/lIIIIr?,/y?/I”,o?n?y?I1/

[root@vmll020031mysitel#gitremoteaddprojectlhttps://qithub.c<xn/zhaoweil017/mysite.qit.

[root?vmll020031mysitej#qitremote-v

origin/zhaoweilOlT/mysite.git(fetch)

origin/2haoweil01?/mysite.qit(push)

projectlnttps:///zhaoweil017/mysite.git(fetch)

Rrojegtl_______http?:〃giEhub.co<n/zhaowe~il017/niys~it:e.git(push)

4.2.4gitfetch從遠(yuǎn)程倉庫抓數(shù)據(jù)

吩咐:$gitfetchproname

-

oot@31msite#itremte-V

ii//ihbQhlol771ft

o9n9u-7za0wee?gec

olQin//9lhubomzha0elol7/1egpush

1-/-

Poccn1psomthbc/zha0e1l0l/teg

4:/u-w.7?

PoJcch1ps:/91thubcofl/zha0we1i0l7/tegCfetch)

[23-ei-hjt1?(push)

o0t@9i#qTfeoltpr。ec

Fh/i.l7/l3?

om岸1oyste

ttTpoj

wJzh-rrrrect1m3ste

w-projecr1sina

br-

4.2.5gitpull獲得最新版本

[root@vmll020031mysite]#gitpul1origin

From/zhaowei1017/mysite

bfa6030..dr034c7master->origin/master

Alreadyup-to-date._

4.2.6gitpush推送數(shù)據(jù)到遠(yuǎn)程倉庫

假如要把本地的內(nèi)容推送到Git服務(wù)器maste分支上.

?分咐:$gitpushoriginmaster

--

0-ot@1o20o1si1eJ#g1Np

1o3T#r

0ot@o2031mysi1eJg1ltc

to34c1my

asee7-

fan9dci工InsertTn+)

o?Tp

o0吟h

2t31siteJ*isprect1e

forh1://91tbco?:zhOJaei1o

for?h1ps//Zhahuelo7@ithc0m

-:dow?

coUnobjects?ps一50ne

?,

Writ1ng0bjects:10O%(3/257be

sd

T13(delao)re(d1yt。)

otarue.e1a

Th://githb?om/hlo17s.-

otrPsuCza1/

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論