一、基本操作 1.登录: 在浏览器地址栏输入http://192.168.7.218:9090/ 回车,进入登陆界面。 登陆自己的账户密码。

2.修改密码: 登录成功后,点击用户设置 左侧边栏,密码 --> 修改密码 --> 保存密码。 二、项目管理 可以根据需要选择新建项目、新建组合新建用户。 1.新建项目 如下图所示新建项目: 创建时可以选择在自己用户下创建或者某个群组内创建 a. 项目名称,项目名称可以为字母、数字、空格、下划线、中划线和英文点号组 成,且必须以字母或数字开头,不能使用中文 b. 项目描述 c.可见性(库类别) 私有库:只有被赋予权限的用户可见 内部库:登录用户可以下载 公开库:所有人可以下载 填写完各项之后,点击创建项目,项目创建成功 提示通过SSH方式拉取推送项目代码必须要导入SSH key,这个稍后再介绍。 项目地址有HTTP和SSH两种方式——可发送给开发人员下载和初始化项目。 2.编辑或删除项目 主页左边菜单栏--------Project 右上角的齿轮状按钮--------编辑项目 右下角删除项目。 或者点击Admin Area 三、用户管理(管理员使用,非管理员跳过此步骤) 1.新建用户 点击顶端的Admin Area按钮  可以进入管理页面 1) 姓名(可以是中文) 2) 用户名(可以为字母、数字、空格、下划线、中划线和英文点号组成,且必须以字母或数字开头,不能使用中文) 3) 邮箱地址(首次接收密码) 4) 建项目的数量限制 5) 是否可以创建组 6) 是否是管理员 7) 选填内容(个人联系方式) 2.编辑和删除用户 四、组管理(管理员使用,非管理员跳过此步骤) 1.新建组 菜单栏Group------New Group 1). 组名称,组名称可以为字母、数字、空格、下划线、中划线和英文点号组成, 且必须以字母或数字开头,不能使用中文 2). 组详情 2.编辑或删除组 在此页面可以编辑和删除组 3.添加组成员 添加组用户并赋予相应的权限。 4.修改成员的权限(owner用户操作) 点击左侧的Groups,然后点击当然的组。 然后点击左侧Members菜单进入。 修改想要修改的用户的权限并save 5.从组管理添加项目 从组里添加项目可免去再添加项目用户的步骤,因此我们选择从组内添加工程。 点击左侧Group,然后点击齿轮按钮。  然后点击Project,接着点New Project  按步骤填写最后点击Create Project创建项目。 此时组内成员都能看到这个项目已经被创建。 五、权限说明 Guest(匿名用户) - 创建项目、写留言薄 Reporter(报告人)- 创建项目、写留言薄、拉项目、下载项目、创建代码片 段 Developer(开发者)- 创建项目、写留言薄、拉项目、下载项目、创建代码 片段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分 支 、创建标签、编写wiki Master(管理者)- 创建项目、写留言薄、拉项目、下载项目、创建代码片 段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分 支 、创建标签、编写wiki、增加团队成员、推送受保护的分支、移除受保护 的分支、编辑项目、添加部署密钥、配置项目钩子 Owner(所有者)- 创建项目、写留言薄、拉项目、下载项目、创建代码片 段、创建合并请求、创建新分支、推送不受保护的分支、移除不受保护的分 支 、创建标签、编写wiki、增加团队成员、推送受保护的分支、移除受保护 的分支、编辑项目、添加部署密钥、配置项目钩子、开关公有模式、将项目转 移到另一个名称空间、删除项目 六、Gitlab在eclipse中的使用 1.生成SSH key  我们用的是eclipse自带的生成key的工具,windows->preferences->General->Network Connections->SSH2,点击SSH2。 在key management处点生成RSAkey  后面输入key的说明和密码,密码也可以空着。点save private key. 把生成的key文件存到用户目录的.ssh目录下。(像第一张图中SSH2 Home指定的目录) 会生成两个文件,一个id_rsa是私钥,一个id_rsa.pub是公钥。 2.发布公钥到服务器 用记事本打开刚刚保存的id_rsa.pub文件,能看到如图所示的类似内容,将他们复制下来。 用你的用户登录到GitLab, Profile Settings->ssh keys->add ssh key. 给用户添加全局的公钥文件。 把刚刚复制的内容粘贴到页面上,add key。   3.相关的具体操作 1)在Eclipse中新建一个项目,此处新建测试用的项目是GitPro1 2)新建GitPro1项目的仓库 在项目上右键 -> Team ->Share Project -> Git -> Next Create->自定义仓库名称->Finish 在D:\Program Files\Git\GitPro1目录下可以看到GitPro1仓库了 同时,eclipse中的project也建立git版本控制,此时未创建分支,处于NO-HEAD状态 文件夹中的”?”表示此文件夹处于untracked状态,这样就成功创建Git仓库。 3)配置.gitignore来过滤不需要上传的文件 这种情况针对带maven依赖的工程!!(因为.classpath .settings .project | clone下来时会有影响造成无法下载jar包依赖) 普通工程暂时不用过滤文件 在工程实现过程中,会生成一些中间文件,或者在项目中的部分文件是不需要进行版本管理的。对于这些文件应该对于Git来讲是透明的。Git提供这种功能,可以自己指定哪些文件可以不被管理。具体方法是在版本管理的根目录下(与.Git文件夹同级)创建一个  .gitignore(gitignore是隐藏文件,所以前面有个点) 右键工程->new file->输入.gitignore 生成.gitignore文件 在界面上输入.classpath .settings .project 保存。可以在仓库视图的Working Directory中看到这个文件。此时你commit时会自动过滤掉这三类文件。若本来工程下面就有这个文件里面如果有/bin/类似的文字不要删除,直接换行添加你需要过滤的文件。 这个在项目里看不到,可以仓库视图的work  4)将项目Commit到本地仓库 尝试提交GitPro1项目,右键->Team->Commit 提示验证信息,将自己用户名和邮箱填写进去,点OK. 下次就不需要填写了。 点击 Commit。我们就把上图中status选中的文件提交到本地git库中了。这些文件从此受git的版本监控了。并且提交注释为version1.0(这个以后用到,当作状态标记)。 接下来打开git repositories视图(Window->show view->other->Git->Git Repositories->OK) 此时,来看看git repositories视图: 这个就是我们在本地git仓库的结构。 5)修改文件后commit 当我们修改GitTest.java的时候。文件状态会发生改变 选中修改过的文件。右击Team->commit. 提交时注释信息为”version 1.1”。 提交完成后,git状态如图 6)添加新文件后的处理 SecondFile.java是我新建的类,“?”表示这个文件未受git库版本监控。要想加入监控:选中这个文件,右击 team > add to index. 之后commit。 7)查看历史提交记录 项目->Team -> Show in history 可以查看版本历史提交记录 8)Push到Gitlab 将本地的git库中的内容push到服务器端的远程仓库 项目->Team -> Remote -> Push填写相关信息后 -> next -> Add All Branches Specs ->Finish Tips: URI在登陆后的Project栏点击,复制中间的地址。 填写好后,点击next –>Add All Branches Spec->Finish. 完成后: 提示项目已经push到服务器。 我们可以在Gitlab中点击Browse Files查看已经上传的代码。 9)使用.gitkeep来追踪空的文件夹 Git会忽略空的文件夹。如果你想版本控制包括空文件夹,根据惯例会在空文件夹下放置.gitkeep文件。其实对文件名没有特定的要求。一旦一个空文件夹下有文件后,这个文件夹就会在版本控制范围内。 10)clone在GitLab中已有项目 为演示,先删除刚刚在eclipse里创建的GitPro1项目 客户端Eclipse上,打开git Repositories视图。点击 . clone a git Repository. 输入信息后点击next,我们会看到服务端git库的分支master出现了 Next 点击Finish. 我们的clone就完成了。 现在在自己的工作空间创建了服务器端的项目。 克隆服务器端仓库后,会在本地建立一个一样的仓库,称本地仓库。 如果clone带有过滤文件的maven+git工程时,clone下来时是无法直接到工作空间的。需要从仓库视图里导入。 当clone下来带有过滤后的Maven+git工程时在git仓库视图右键—>Import projects—>Import as general project—>next—>finish,此时eclipse工作空间就导入了项目,但现在是没有maven的,右键工程—>Configure—>Convert to maven project,现在工作空间的工程就是一个完整的maven+git工程了。 11)新建自己的分支进行开发并push到远程分支 Team->Switch To->New Branch 此时,刚刚clone下来的分支已经切换成自己的分支,我们就能在自己的分支上任意开发了 在自己分支上开发,修改文件并commit提交到本地仓库。 接下来要push到远程的新建分支 Team->Remote->push->Next->Add Spec->Next->Finish 成功将自己修改后的代码提交到远程新建的自己的分支 现在在Gitlab上就能看到两个分支,一个master主分支(保护状态,developer无法push)和yjx新建分支 12)新建分支与master分支进行合并请求(Merge Request) 登陆自己的Gitlab账户。点击Project或进入工程点击Branch会看到创建合并请求的标签: 点击Merge Request 此时,管理员登陆Gitlab后点左侧Projects->GitPro1->Merge Requests 管理员任何新建分支提交的代码,审阅后没有问题的情况下点击Accept Merge Request 此时我们看到合并到master分支后的情况 Tips: matser用户可以直接push到master分支。Developer无法直接push到受保护的master分支,必须先建立自己的分支,再提交,推送,请求合并。 13)退回历史版本 远程仓库和本地仓库都存放有我们提交的每一个历史版本。 打开工程的历史,在要退回的历史版本上右键reset->Hard->yes,工程就退回历史版本了 14)推送冲突的解决 对于master用户来说: 假定咱们clone到本地的工程分支保持不变是1.1版本,但是服务器远程分支已经被更新到1.3版本了,此时就会产生冲突,无法提交: 此时我们要将工程pull到最新 team->pull将远程的修改pull到本地git库: 点ok。你回发现工作空间的项目出现冲突的标志。 此时,选择冲突的文件GitTest.java右击,Team > merge tool . 选择第二项,ok。 根据比较修改左边的文件,也就是你工作空间中的文件。解决完冲突之后。保存。如图状态。 现在你可以提交这个文件了。选中GitTest.java 右击team > add to index . 此时工作空间中的图标有所变化。 当出现灰色的雪花符号时,你就可以进行提交并 push到服务器端。 commit 状态 之后,push。 现在成功push 15)自建分支开发前获取远程master更新并与本地合并 作为developer用户在自己的分支上先右键->fetch from upstream将远程master分支的最新版本更新到本地,ok。 接着右键->team->merge ,如图选择下面远程仓库的master分支,Merge,选择最新的版本,点ok,则当前自己的分支已更新到远程master分支同步。 Merge之后当前分支已经和服务器端远程仓库的master分支一致了,就可以继续开发了。 16)自建工程push到远端后本地git没有远端追踪的解决方案 这种情况发生在我们自己建立的工程,并且在该工程下继续开发时。本地新建工程后 进行commit-push,将代码推送到服务器端后,会发现本地git视图的远程追踪是空的,只有本地追踪。此时,如果有人参与该工程,并且远端分支修改,你需要fetch时,在IDE中时无法操作拉远程分支的。 如何解决这个问题?我们切到git仓库视图,在下图中的Remotes仓库的小图标上右键,点击Create Remote,再点击configure fetch,点ok。 然后将服务器web端的工程URL粘贴在下图中,并填上主机地址。点finish。接下来再点击左下角的save and fetch。然后大功告成,最后一张图中我们就看到方框中远程追踪已经出现了,接下来你就可以任意的fetch远程分支了。

git介绍就到这里了,谢谢各位的观看,同时欢迎各位看官关注本人公众号,本人将在上面分享测试,开发,运维相关的资料和学习视频上传到上面,供大家一起学习讨论: