从入门到精通手把手教你使用git(史上最详细,图文并茂)

一、基本操作

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). 组名称,组名称可以为字母、数字、空格、下划线、中划线和英文点号组成,

且必须以字母或数字开头,不能使用中文

  1. . 组详情

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使用介绍结束,如果大家还想深入学习,可以扫描下图关注本人公众号,本人将在上面分享更多学习资料,也欢迎各位跟我一起探讨相关知识。

 

 

 

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值