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

author author     2022-12-06     325

关键词:

一、基本操作
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 FilesGitGitPro1目录下可以看到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介绍就到这里了,谢谢各位的观看,同时欢迎各位看官关注本人公众号,本人将在上面分享测试,开发,运维相关的资料和学习视频上传到上面,供大家一起学习讨论:

技术图片

python爬虫入门到实战-史上最详细的爬虫教程

马哥高薪实战学员【Python爬虫入门到实战-史上最详细的爬虫教程,限时免费领取】爬虫分类和ROBOTS协议爬虫URLLIB使用和进阶爬虫URL编码和GETPOST请求 查看详情

quartz任务调度quartz从入门到入土(史上最详细)(代码片段)

背景在项目开发过程中,有时候需要利用定时任务技术来完成某些周期性的任务,比如,定时下载对账单、定时进行数据对比、转换,数据定时入库等等。在最开始的时候部分开发人员习惯直接在项目中硬编码一些定时器。一、... 查看详情

git史上最易上手详细教程(代码片段)

...https://www.liaoxuefeng.com/一、Git简介初始化一个Git仓库,使用gitinit命令。添加文件到Git仓库,分两步:使用命令gitadd<file>,注意,可反复多次使用, 查看详情

quartz任务调度quartz从入门到入土(史上最详细)(代码片段)

背景在项目开发过程中,有时候需要利用定时任务技术来完成某些周期性的任务,比如,定时下载对账单、定时进行数据对比、转换,数据定时入库等等。在最开始的时候部分开发人员习惯直接在项目中硬编码一些定时器。一、... 查看详情

androidstudio应用基础,手把手教你从入门到精通(小白学习)总结1之基础介绍+intent+常用控件(代码片段)

说在最前面:这是我根据B站的教学视频整理的笔记,视频里面的代码都是自己手敲、经过调试而且没有错误的 B站教学视频链接:(学完必会)Androidstudio基础,从入门到精通,学完小白也能会_哔哩哔... 查看详情

超详细的java开发环境搭建指南(手把手带你开发第一个java程序)

...环境配置教程,通过图文并茂的方式详细讲解每一步骤,手把手教你安装和配置和Java环境。视频在线观看:Java零基础教程视频(适合Java0基础,Java初学入门)资料、源码下载:​​ Java零基础入门视频教程全套免费下载【适... 查看详情

手把手教你如何操作git回退版本(图文并茂)

部门一个开发小伙请假了,走之前急急忙忙提交了代码,结果导致更新代码出现问题,需要回退当前版本,到老版本。由于我们是使用的git做版本管理,这里将过程记录下来,跟大家一起分享。1、首先打开git命令控制台,右键... 查看详情

github教程史上最全github使用方法:github入门到精通

【初识Github】首先让我们大家一起喊一句“HelloGithub”。YEAH!就是这样。Git是一个分布式的版本控制系统,最初由LinusTorvalds编写,用作Linux内核代码的管理。在推出后,Git在其它项目中也取得了很大成功,尤其是在Ruby社区中。目... 查看详情

史上最通俗易懂的python入门教程,漫画图文生动有趣,一看就会(代码片段)

今天给那些在学习Python路上有挫折的朋友分享一份《看漫画学Python》,不同的是本书采用漫画的形式,用简单易懂的语言和图片详细解读了Python的每一个知识点。【文末免费自取PDF】文档目录数字类型的数据函数常用的内置模块访... 查看详情

史上最通俗易懂的python入门教程,漫画图文生动有趣,一看就会(代码片段)

全网最简单易懂!495页Python漫画教程,高清PDF版开发下载。今天给那些在学习Python路上有挫折的朋友分享一份《看漫画学Python》,不同的是本书采用漫画的形式,用简单易懂的语言和图片详细解读了Python的每一个知识点。【... 查看详情

如何利用idea提交本地代码到git远程仓库,史上最详细教程,建议收藏!

1.首先在gitee上注册一个账号2.在gitee创建一个远程仓库3.idea配置git注意git要提前下载配置好4.建立一个简单项目5.建立本地仓库本地仓库选择在本项目即可6.建立本地仓库与远程库连接7.提交代码到远程库中8.成功! 查看详情

实用小技巧matlab从入门到精通:matlab十个常见问题及解决方案

...ow从入门到精通100讲 深度学习框架TensorFlow的应用案例手把手教你ML机器学习算法源码全解析 机器学习算法解析及应用案例数据挖掘算法解析指南 数据挖掘算法原理解析及应用案例数据结构常见 查看详情

实用小技巧matlab从入门到精通:matlab十个常见问题及解决方案

...ow从入门到精通100讲 深度学习框架TensorFlow的应用案例手把手教你ML机器学习算法源码全解析 机器学习算法解析及应用案例数据挖掘算法解析指南 数据挖掘算法原理解析及应用案例数据结构常见 查看详情

单元测试界的高富帅,pytest框架,手把手教学,从入门到精通

参考技术Apytest到目前为止还没有翻译的比较好全面的使用文档,很多英文不太好的小伙伴,在学习时看英文文档还是很吃力。本来去年就计划写pytest详细的使用文档的,由于时间关系一直搁置,直到今天才开始写。本文是第一... 查看详情

ar入门系列-在vuforia官网的使用-01-史上最详细ar入门教程

使用高通的vuforiaSDK网址:https://developer.vuforia.com/我们想要使用vuforia首先得注册一个账号网站会发送邮件给你的邮箱点击验证链接,验证邮箱出现此信息代表验证成功,即可登录登录成功后即可下载SDK,可以根据你的需要下载,... 查看详情

git版本控制软件结合github从入门到精通常用命令学习手册

                  注意:学习前请先配置好Git客户端相关文章:Git客户端图文详解如何安装配置GitHub操作流程攻略官方中文手册:http://git-scm.com/book/zhGIT学习手册简介本站为Git学习参考手册。目的是为学习... 查看详情

史上最简单&最全&最基础&入门到精通的opencv图像处理第一课:图像读入与灰度处理(代码片段)

文章目录一、代码部分二、运行结果总结一、代码部分代码如下(示例):#原始图importcv2ascv#opencvBGRimportmatplotlib.pyplotasplt#包导入importnumpyasnp#matplotlibinlineimg1=cv.imread('C:/Users/akaak/Pictures/OpenCV/ 查看详情

史上最详细的sqlmap使用教程(代码片段)

史上最详细的sqlmap使用教程1.sqlmap简介2.初级扫描方案探测是否存在sql注入漏洞查看数据库信息3.高级扫描方案绕过waf探测等级和危险等级(—level—risk)伪造HttpReferer头部执行指定的SQL语句(—sql-shell)执行操作系统命令(—os-shell)读... 查看详情