Gitlab使用手册资料_第1页
Gitlab使用手册资料_第2页
Gitlab使用手册资料_第3页
Gitlab使用手册资料_第4页
Gitlab使用手册资料_第5页
已阅读5页,还剩18页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

Gitlab使用手册

目录

-Gitlab账号/库申请流程2

l.lGitlab账号2

1.2Gitlab‘I’巾j3

二Gitlab登录3

2.2Gitlab登录页面3

--Git环।境/□图(fw罟.r-i»••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••••.3

3.1创建公钥4

3,1.1Linuxi,।4

3.1.2Windows环境4

3.1.3MacOS环境8

3.2G出abSSH页面配置8

Git操作命令..9

4.1Git本地仓库操作命令9

4.1.1gitinit/gitclone初始化库10

4.1.2gitstatus查看状态…“11

4.1.3gitadd添加文件12

4.1.4gitdiff对比文件12

4.1.5gitcommit提交更新13

4,L6gitrm彳多.乂f~|一13

4.1.7gitmv移动文件14

4.1.8gitlog,,,,,,,,,*,,,i・,,,,,,i・,,,i,ii,,,,,,i,,,,,i・i,,i,,,,,,ti,i,,,,,,,i,,,,,,,,,,,,,,,i,,,,,*i,*,,,,,,i・i,,i,,,,,,,i,i,、,*,,,i,,,,,,,,,,,,,,15

4.1.9gitreset撤销操作15

4.1.10gitbranch创建分支

4.1.11gitmerge分支合并18

4.1.12gitconflictJ:f中:”,“”“i,“““““““““””“1“,””“18

4.1.13gittag创建标签19

4.2Git远程仓库关联操作命令.20

4.2.1gitremote查看远处仓库20

4.2.2gitremoteshow查看远程仓库信息21

4.2.3gitremoteadd添加远程仓库21

4.2.4gitfetch仓(据.““““21

4.2.5gitpull获取最新版本22

4.2.6gitpush推据到程*1^库”22

4.2.7gitremoterename/rm远程仓库重命名/删除22

•fiWindowsGit操作23

-Gitlab账号/库申请流程

1,1Gitlab账号

使用邮箱前缀、邮箱密码访问即可。

1.2Gitlab库申请

邮件申请。(发邮件给zhaoweiz@、cuixfl@)

二Gitlab登录

2.1Gitlab访问路径

URL:http://3/

2.2Gitlab登录页面

Existinguser?Signin

[LDAP]

Standard

LDAPSignin

=Git环境配置

3.1创建公钥

不同操作系统创建公钥的方式不同。以下是三种操作系统的举例。

3.1.1Linux环境

$ssh-keygen〃讯公钥

$cat"ssh/idjsa.pub〃将公钥文件内容拷贝到Gitlab配置页面中。见3,2节。

注意:Vim文件复制粘贴可能会导致内容换行,导致公钥无效。

3.1.2Windows环境

需要下载msysgit和tortoisegit客户端

第一步,下载msysg让并安装.(基本上一路Next。因为我们还要安装tortoisegit,所

以不需要选择"Windowsexplorerintegration"°)

URL:

https;〃/p/msysgit/downloads/list?can=2&q=%22Full+installe「+

for+official+Git+for+Wirdows%22

或者公司共享目录:\\devshare\工具共享、常用软件\qit

第二步,下载tortoisegit并安装

URL:

https:〃/p/tortoiseq让/wiki/Download?tm=2

或者公司共享目录:\\devsha「代工具共享'常用软件\qit

第三步,在tortoisegit上配置msysgit的路径(见下图)

Settings-TortoiseGit

创建公钥的方式(二者选一即可)

(1)通过9代曲@6让方式生成公钥

a)从Windows开始菜单选择TortoiseGit,点击其下的Puttygen工具,该工具用于生

成Putty支持的SSH密匙对。

TortoiseGit

斜Help

0Notepad2

.Pageant

PuttygerT^

Settings

kTortoiseGitBlame

E&TortoiseGitIDiff

itTortoiseGrtMerae

b)点击Generate按钮,即生成公钥和私钥。将Publickey(公匙)ffiPrivatekey(私

匙)都保存到文档中,以免丢失。其中Privatekey是你的TortoiseGit用来验证用户身份,

呼PuTTYKeyGenerator

说明:

L生成key的类型:SSH-2RSA

说明:

1.将生成的Publicke汴占贴到GitLab站点”申请者帐号"里。配置方式见32节。(由

于tortoisegit生成的公钥粘贴到’gitlabSSHKey'中并不能够自前生成’title',因此

需要自己填写一个‘title')

WI皿

AddanSSHKey

£A

K«yithm

2.保存"Saveprivatekey"到本地。

(2)通过命令行方式生成公钥

a)点击‘开始’,在搜索中输入‘cmd'。

b)$ssh-keygen//生成公钥

c)将生成的Publickey粘贴到GitLab站点“申请者帐号"里。配置方式见3.2节。

3.1.3MacOS环境

$ssh-keygen〃淑公钥

$cat-/.ssh/id_rsa.pub〃符公钥文件内容拷贝到Gitlab配置页面中。见3.2节。

3.2GitlabSSH页面配置

Gitlab"AddSSHKey"界面如下:

学ProMsOlMMq

.—PsuwsHMAeMnS$HKiy«1

MySSHkeys

BHMywcon3Nm591kfyywXu第”酬・

88HKfr>(1)

皿ehMo>gJ27PCW%N6%a%骗和&&•£■H/•81»»•<12%”

将3.1节创建的公钥拷贝到"Key"方框中:

AddanSSHKey

r«t

Kw)^WtywpvtKMyhrt—"mF>»♦prl除F即

Add%

四Git操作命令

4.1Git本地仓库操作命令

•gitinit/gitclone【嫄化库】

•gitstatus【查看状态】

•gitadd【添加文件】

•gitdiff【对匕应件】

•gitcommit【提交更新】

•gitrm【移除文件】

•gitmv【移动文件】

•gitlog【查看提交历史】

•gitreset【撤销操作】

•gitbranch【创建分支】

•gitmerge【分支合并】

•gitconflict【解决冲突】

•gittag【创建标签】

4.1.1gitinit/gitclone初始化库

>初始化一个新库

$gitinit

>从现有仓库克隆

$gitcloneURL

4.1.2gitstatus查看状态

>若没有可跟踪的文件,用gitstatus命令,则会输出:

[root@vmll020031testlOO6]#gitstatus

#onbranchmaster►

#

#initialcommit

#

nothingtocommit(create/copyfilesanduseHgitadd"totrack)

>若编辑T新文件hi.txt,保存退出。用gitadd命令跟踪文件后运行gitstatus命

令,则输出:

r

troor@vmll020031TesriOO61#gitaddhi.rxr

*roor©vmll020031restlOOGj#gitstatus

#onbranchmaster

#

#initialcomm-it

#

#Changestobecommitted;

*(use"gitrm-一cached<fitounstage)

#

#newfile:hl.txt

说明:只要在"Changestobecommitted"下面,就表示为已暂存状态°

>若修改已经暂存状态的文件,保存退出后用gitstatus命令,则会输出:

[rootevmll020031testlOOO]#gitstatus.

#Ortbranchmaster

#.Initialcommit

*changestobecommitted;

#(use"g1rrm--cachedtounstage)

,newfile:hi.txt

%

*Change%notntagedforcommit:

•'fuse"gitaddtoupdatewhatwillbecommitted)

#<useMgixcheckout--<f1le>...Mtodiscardchanges1nworkingdirectory)

*modified;hi.rxt

说明:hi.txt文件出现了两次!一次算未暂存,一次算已暂存。需要将未暂存的文件

通过gitadd添加到已暂存。

4.1.3gitadd添加文件

作用:

可以用它开始跟踪新文件;

把已经跟踪的文件放到暂存区

合并时把有冲突的文件标记为已解决状态。

4.1.4gitdiff对比文件

作用:

当前作的哪些更新还没有暂存;

有哪些更新已经暂存起来准备好了下次提交。

[root@vmll020031testlOOGJ*gitdiff

diff--gira/hi.rxrb/hi.txr

■index19Oal8O..c25aO2b100644

a/hi.txr

+++b/hi.Txt

〜-1+1.2〜

123

+35d

[root®vmii020031testiooci#g1taddM.txt

[root@vmi:L02003iSETIOOS]#gitcHfJ

说明:

有时候一下子暂存了所有更新过的文件后,运行git.diff后却什么也没有。原因是,

gkdiff仅显示还没有暂存起来的改动,而不是这次工作和上次提交之间的差异。

4.1.5gitcommit提交更新

在提交之前,一定要用gitstatus确认还有哪些修改过的或是新建的文件还没有暂存

起来。否则,这些没有暂存的文件就不能将最新变化提交到版本库中。

参数介绍:

gitcommit-m使用-m参数后跟提交说明的方式,在一行命令中提交更新

[root@vmll020031testl006]#gitcommit-m"test"h~i.txt

[master(root-commit)Ic4a7eb]test

1filechanged,2insertions(+)

createmode100644hi.txt

gitcommit-a自动把所有已经跟踪过的文件暂存起来一悔交,跳过使用暂存区域

提交更新

ItvjtaiiyuncruvrcuLUK.MIIIIIIIL\UNUyiLCTCTOCUIU/uiu

[root@vmll020031testl006]#gitcommit-a-m"test"

[masterd72648e]rest

2fileschanged,4deletions(-)

deletemode100644hi.txt

deletemode100644test.txt

4.1.6gitrm移除文件

删除已提交的某个文件,需要先用gitrm命令从暂存区域中移除这个文件,然后再用

gitcommit命令提交。

rio^ri11IQuoniiTiiL^worKIriu415ytied”,

[roQt@vinll020031testl006j#11

total0

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

[root@vmll020031testl006]#gitstatus

#onbranchmaster►

nothingtocommit(workingdirectoryclean)

[root@vmll020031testl006Jfgitrmtest.txt

rm'test.txt'►

[root@vmll020031testl006]#gitstatus

#onbranchmasterA

#changestobecommirted:

#(use"gitresetHEAD"tounstage)

deleted:test.txt

rroot@vmll020031testl006]#gitcommittest.txt-m-del"

[masxerb7d24ab]del

0fileschanged

deletemode100644test.txt

[root(&vmll020031testl006]#gitstatus

#onbranchmaster

nothingtocommitdirectoryclean)

41.7gitmv移动文件

Git中的重命名某个文件,仓库中存储的元数据并不会体现出这是一次改名操作。

文件改名并查看当前状态;

root@vmll020031restlOObmvtesr.txrtest_to.txt

root@vmll020031testl006ST3TCTJ5

onbranchmaster

changestobecommitted

(use"gitresetHEAD••"tounstage)

renamed:tQsr.txt->testro.txt

运行gitmv就相当于运行了下面三条命令:

$mvtest_from.txttest_to.txt

$gitrmtest_from.txt

$gitaddtest_to.txt

4.1.8gitlog查看提交历史

每次更新都有一个SHA-1校验和、作者的名字和电子邮件地址、提交时间,最后缩

进一个段落显示提交说明。

[root@vmll020031testl006]#gitlog

commir055430106951c9794b967c75a2f6213do3da2515

Author:zhaowei3<zhaowei3@staff.si>

Date:TueNov614:48:592012+0800

committest

commitlc4a7e601293e3f97e654929a803d67f256e8b34

Author:zhaowei3<zhaowei3d5taff.>

Date:TueNov614:38:132012+0800

test

常用查找历史日志的选项:

-P:项展开显示每次提交的内容差异;

-n(数字):仅显示最近的n次更新。

在做代码审查,或者要快速浏览其他协作者提交的更新都作了哪些改动时,就可以用

这个选项9

4.1.9gitreset撤销操作

》取消已暂存的文件

若不小将某个文件添加/删除到了暂存区域,可以用"gitresetHEAD<file>,,,“命

令取消暂存.

rrootdvmil020031testlOOfili1gitaddhLtxt

[rQQt&vmllO2OO31testl006]fgitstatus

#Onbranchnaster

#Changestobecommitted:

#(use"gitresetHEADtounstage)

*

#modified:hi.txt

#

[rooi®vmll020031testl006]#gitresetHEADhi.txt

unstagedchangesafterreset;►

Mhi.txt

[rootevmll020031testiooe]#g1tstatus

#onbranchmaster►

#changesnotsragedforcommit:

#(use"gitadd<file>..toupdarewhatwillbecommitted)

#(use"gitcheckout--."todiscardchangesinworkingdirectory)

.

#modified!hi.txt

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

>修改最后一次提交

提交后发现漏掉了一些文件想要撤销刚才的提交6若刚才提交完后没有做任何改动,

可以使用一amend选项重新提交,

[root©v«ii02003itestiooej#gitstatus

9onbranchBaster►

fChangestobecoral“ed;

»(use"altresetHEADtounstag«)

,

*modified;hi.txt

»

fro«^v«11020031testlOOfi]#gftcoomit-m4firstcoanfttest,secondcomiithi"test.txv

[masterMeblbf]firstCownitiOwnithi

1filechanged.1insertion。)

[root«v«11020031testlOOfij#gitstatus

#Onbranchvaster»

»Changestobeconwitted:

“(use"gitresetHEADtounstage)

#

#modified:hi.txt

#

[roQt«vBil020031testlOOfi]#gitcomit--anendhi.txt快

firstcomnlttest.secondcoamithl

»Pleaseenterthecoraltnessageforyourchanges.Linesstarting

*withwillbeignored,andanemptyliessageabortstheconmlt.

tExplicitpathsspecifiedwithout-inor*o:assuming--onlypaths...

#Qnbranch

»changestobecoraHtted:

#(use"gkresetHEADAItounstage)

#modified:M.txt

■modified:test.txt

>取消工作目录中已经修改的文件

若已经添加到暂存区域的文件又进行了修改,但这些改动又觉得是没有必要,则可以

用Hgitcheckout-<file>./恢复到修改前的版本。

Ill*\八tAL|,<EItty”

[root@vmll020021testl006]#gitstatus

#onbranchmaster——►

#Changestobecommitted:

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

#modified:hi.txt

#

#Changesnotstagedforcommit:

■(use"gitadd<file>...*'toupdatewhatwillbecommitted)

#(use"gitcheckout—<f1le>.todiscardchangesinworld

#

#modified:hi.txt

$vimhi.txt

*iI•LAk.NmFtlILL匕II

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

[root®vmll020031testl006]tfgitstatus

#onbranchmaster____________»

#changesiobecowiltted:

♦(use"gitresetHEADtounstage)

#modified:hl.txt

4.1.10gitbranch创建分支

创建一个test分支,然后将目录切换到test分支下面。

[root@vmll020031testlOOSJ#gitbranch

*master

[root@vmll020031testl006]#gitbranchprol

[roox©vmll020031tesxiOO6]#Drancn

,waste尸]—―►

prol

[root<?vmllQ20031testl006]*gitcheckout£rol.

Switchedtobranch'prol'

[root@vmll020031testlOO6]#gitbranch

maste『►

*proi_________________________________________

注意:test分支前的〃*〃字符:表示当前所在的分支。

gitcheckout-b分支名

相当于:

gitbranch分支名

gitcheckout分支名

4.1.11gitmerge分支合并

首先查看当前目录所有分支清单,然后切换到master分支目录下,最后将prol分支

内容合并到master上。

[root©vmll020621testl006]#gitcheckoutmaster

Switchedtobranch'master'

[root©vmll020031testlOO6J#gitbranch

*master

prol

[root@vmll020031testlOOGj#gitmergeprol

updating90af0bl..33b41d9

Fast-forward

hi.txt|1+

test.txtI1+

Wcgw*21丑£085(+)

4.1.12gitconflict解决冲突

>如果修改了两个待合并的分支里同一个文件的同一个部分,则会出现如下报错:

[root@vmll020031testl006]#gitmergeprol

Auto-mergingtest.txt

CONFLICT(content):Mergeconflictintest.txt

Automaticmergefailed;fixconflictsandthencommittheresult.

「-c——YYcrcWr..cclIj1J

Crcx)c<»vnil1020031tostlOO6J#g1xstatus

・Onbranchmaster

•vouhav«urvMraodpaThs.

*《『Txcoo4Plccsandrun"gdtucmmlt”〉

♦unmcrgcdpaths;

.(UGQ"glradd<T11o>..."tomarkrofiolur1on)

*boxhmodiad:COST.rxc

>如何编辑冲突:

首先查看当前目录下的状态(gitstatus),然后编辑冲突文件Wimtest.txt),再将冲突

文件置为解决状态(gitaddtest.txt),最后将合并的文件提交给(gitcommit-m"注释〃)。

冲突文件test.txt,打开后可以看到:

<<<<<<<HEAD

bral-11111222

bral-qwerea

>>>>>>>prol

说明:二二二二二二二隔开的上半部分,是HEAD(即master分支)中的内容,下半部

分是在test分支中的内容。

4113gittag创建标签

>列出所有标签

gittag

>搜索标签

gittag-I标签名

>创建标签

gittag-a标签名-m注释

4.2Git远程仓库关联操作命令

gitremote【查看远处仓库】

■gitremoteshow【查看远程仓库信息】

gitremoteadd【添加远程仓库】

gitfetch【从远程仓库抓数据】

gitpull【安取最新版本】

gitpush【推送数据到远程仓库】

■gitremoterename/rm【远程仓库重命名/删除】

4.2.1gitremote查看远处仓库

用gitremote命令,查看当前配置有哪些远程仓库。加上参数,可以列出所有的

远程仓库。

[root§vmll020031mysite]#gitremote

origin

[root@vmll020031mysite]#gitremote-v)

originhttps://github.coni/zhaoweil017/iiy$ite.git(fetch)

originhttps://github.coni/zhaowGilOlZ/mysite.git(push)

「Rd——“"ccccx_Un_______________________________

参数介绍;

-V:可以列出所有的远程仓库。

4.2.2gitremoteshow查看远程仓库信息

11

yy"_,,…m丁'J,=,,.:u,,'■",,3,,j'=/,,,j」'…7‘、—

[root@vmll020031mysite]#gitremoteshow

origin

[root@vmll020031mysite]#gitremoteshoworigin

*remoteorigin

FetchURL:/zhaoweilOlZ/mysite.git

PushURL:/zhaoweil017/mysite.git

HEADbranch:master

Remotebranches;

masrertracked

sinatracked

Localbranchconfiguredfor'gitpull':

mastermergeswithremotemaster

Localrefconfiguredfor'gitpush':

masterpushesto.magte匚(uptodate)

4.2.3gitremoteadd添加远程仓库

若要添加Y新的远程仓库,运行gitremoteadd[shortname][url]

UiIIIIIULpb.//yILIIUU.LUiil/IXUX//UiyjILt!,yIL

rroot9vmll020031aysitel#gitreaoteaddprojectl/zhaoweil017/Bysite.qitfe

[root@vmll020031iiysitejfgitreaote-v

originhttps://g1thub.coa/zhaowei1017/ayrite.git(fetch)

originhttps://Q1thub.com/zhaowei1017/mysite.git(push)

project!https://gkhub.coni/zhaoweil017/Bysite.git(fetch)

projectlhttps://github.com/zhaoweilOV/Bysite.git(push)

4.2.4gitfetch从远程仓库抓数据

命令:$gitfetchproname

【root@vml1020031吨site”里tremote二vJ

originhttps://g1thub.coffl/2haowe1l0l7/llfys1te.gitCfetch)

originhrtps:///2haowe1l0l7/mysite.g1t(push)

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

projectlhttps;///zhaoweil017/mysite.git(push)

[root®vmil020031nrysite]#qitfn比project人

Fromhttps://g1chub.cow/zhaoweflfflT福>

*[newbranch]master->projectl/master

*[newbranch]s1na->projectl/sina

4.2.5gitpull获取最新版本

[root©vmll020031mysite]*gitpullorigin

Fromhttps://qithuD.com/zhaoweil017/mysite

bfa6030..dfO34c7master->origin/master

Alreadyup-to-date.

426gitpush推送数据到远程仓库

如果要把本地的内容推送到Git服务器maste分支上

命令:$gitpushoriginmaster

[rootfflvmll020031mysite]#qiiaddzpf.txt.

[rootfflvmll020031mysite]#git-cbmmTr-m"d

[masterdfO24c7]ci

1filechanged,1insertion(+)

[root@vmll0206031mysite]#gitpushprojectlmaster

Usernameforhttps://github.com':

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论