Day10.GIT 您所在的位置:网站首页 gitbash切换用户 Day10.GIT

Day10.GIT

2023-03-10 11:30| 来源: 网络整理| 查看: 265

GIT 学习目标 1.能说出GIT的工作流程 2.使用GIT完成常用操作【本地操作、运程操作、协作】 git菜鸟网站 https://www.runoob.com/git/git-tutorial.html gitlab服务器地址: http://47.96.143.141:9999/ 00.GIT课程学习方法介绍 务必好好学习本门课程,操作熟练度决定了你是不是一个专业的编程人员 GIT是一门特殊的课程,GIT是一个软件,不是一门技术,所以学习时,主要侧重于操作 GIT包含的理论知识不多,所学习理论知识也是为了辅助操作 GIT操作不可能一次性全部学完,后续还需要慢慢熟悉,提高熟练度 GIT基础操作不要觉得简单就不练习,等多的时候混合在一起就复杂了 这门课程资料配图较多,如果你使用的Idea版本与老师不同,可能截图会对不上,所以看图的时候不要只看图,要看文字,万一界面不同,找对应的按钮即可 01.GIT概述 目标 说出GIT的作用以及特点 内容

Git是目前世界上最先进的分布式文件版本控制系统(没有之一)

版本控制 所谓的版本控制就是将一组文件的改动记录下来,形成版本历史,以便需要时恢复

GIT作用

代码共享

每位开发者可以使用Git将自己的代码上传到云服务器上,同时使用Git还可以将其他人上传的代码下载到自己的电脑上,这样就实现了代码共享

image-20210427154555422

回溯版本

在开发的过程中其实还会遇到各种奇葩问题,比如自己心血来潮写了一段超级牛×的代码,本着闲着也是闲着的思想,在这段代码的基础上又进行了调优,但是优没调成,代码还给整的不能用了。鉴于马上要要交活了,这个时候就打算放弃,但是你发现原来能用的代码已经被改的面目全非,不能用了,那这就太让人崩溃了。这个时候就幻想着如果这两小时什么事情都没有发生该多好,如果能时间倒流该多好。Git告诉你,这事我能做。Git除了可以帮我们保存代码,还可以保存每次上传的痕迹,每上传一次就做一次备份,上传3次就备份3次,每次备份就相当于一个版本,任意时间可以通过Git查询曾经提交过的每一个版本对应的内容,这样就可以随时恢复到之前任意上传时间对应的状态了

image-20210427154626253

追踪信息

使用Git的过程中大部分时间是管理自己写的东西,但是也会存在一些情况需要你去改别人的代码或者几个人编辑同一个文件。此时同一个文件,你改改,我改改,最后算谁的啊?出了问题你追责都没的追,怎么解决这个问题呢?Git提供了强制记录日志的功能,每次上传信息要求书写日志,可以记录本次上传的相关信息。比如写清楚本次上传的内容啊,对应的说明啊,等等。关于日志的内容书写格式并不是规范类的东西,只能算是一个约定,因此每个公司对开发者提交日志都有自己的要求,上传时写什么东西,这样出了问题就可以进行信息追踪了

image-20210427154646498

小结

什么是git,它的作用是什么

1)Git 是一个开源的分布式版本控制系统

2)作用:

​ 1.代码共享

​ 2.信息追踪

​ 3.版本回溯

GIT与SVN的区别【面试题,不用理解,概念性记忆】

Git 是分布式的,SVN 不是 Git 把内容按元数据(修饰数据的数据)方式存储,而 SVN 是按文件 Git 分支和 SVN 的分支不同 Git 没有一个全局的版本号,而 SVN 有 Git 的内容完整性要优于 SVN

image-20210427152557454

02.GIT相关概念(掌握) 目标

可以画图说明GIT中工作区【Workspace】、暂存区【Index Stage】、版本库、运程仓库【Remote】的作用

内容

git没有中央版本库,但是为了方便开发小组的成员们进行代码共享,我们通常会搭建一个远程的git仓库。和svn不同的是开发者本地也包含一个完成的git仓库,从某种程度上来说本地的仓库和远程的仓库在身份上是等价的,没有主从。

image-20210427152754418

# 1.工作区:就是你平时存放项目代码的地方。 位置:一个文件夹通过git init 设置成一个git可以管理的文件夹时,这个文件夹里的内容(除去.git文件夹)就是工作区。

image-20210512221007691

# 2.仓库区(或版本库),就是安全存放数据的位置,这里面有你提交到所有版本的数据。其中HEAD指向最新放入仓库的版本。就是工作区有一个隐藏目录 .git,它不算工作区,而是 Git 的版本库 # 3.暂存区:英文叫 stage 或 index。是用来暂时存放工作区中修改的内容,可以理解为一个中转站。 1)位置:一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index)。 2)只是一个文件 3)包含在版本库中 4)为什么需要暂存区: 1.如果没有暂存区,如果想要提交文件就需要一个个修改然后,提交,比较麻烦,但是有了暂存区就可以一次性将所需要的文件从暂存区 直接修改后提交。 2.如果没有暂存区,你修改的文件只可以立刻保存到版本库中,但是这样很容易对别人的工作造成影响

image-20210512221443386

# 4.Head :指向最新放入仓库的版本 # 5.master:是我们的主分支。当我们git init后,并不会立刻产生分支。而是我们添加了一个文件,并git add,git commit后这时我们查看分支情况便可以看到master分支了。是本地仓库一部分。 # 6.objects:是git对象库,是用来存储各种创建的对象以及内容. # 7.远程仓库:托管代码的服务器,常用github。gitee(码云)。gitlab 小结

什么是工作区

就是我们自己创建的目录,放置 我们要管理的文件

什么是暂存区

在将工作区内容加入到本地仓库,在加入到本地仓库前,是先放置在暂存区的

03.GIT下载与安装 目标

GIT安装完成,并测试成功

内容

下载地址:https://git-scm.com/download

image-20210427155020542

或者直接使用资料中安装文件:Git-2.15.0-64-bit.exe

image-20210427155104759

安装过程非常简单,各种下一步,各种Next,点点点就完事了

双击直接安装【版本为64位系统的】

image-20210427155134364

点击Next

image-20210427155149677

点击Next

image-20210427155202979

点击Next

image-20210427155216067

点击Next

image-20210427155243055

点击Next

image-20210427155311590

后面步骤直接都是Next

image-20210427155329503

点击Finish完成安装,验证安装,找一个桌面空白处,右键出现下列窗口

image-20210427155347613

点击后,出现Git的控制台,在控制台输入git,可以看到相关的帮助信息

image-20210427155505115

04.GIT本地操作-初始化工作区 目标

​ 说出 git init、git status作用

内容

初始化工作区

image-20210427155822421

工作区 就是你在电脑里能看到的目录。比如我们刚刚创建的learn-Git目录,在最初使用的时候,我们需要初始化当前的文件夹为工作区

如何初始化工作区

命令:git init 初始化

在要被初始化工作区的目录右键,选择Git Bash Here

image-20210514212348385

image-20210427155957425

在文件夹中机会出现一个隐藏文件.git如图

image-20210427160013687

当我们在learn-Git文件夹中添加文件的时候,那么这个文件就会被Git所管理

查看状态

我们在learn-git目录中创建一个readme.txt文件,并使用vim命令进入编辑模式添加内容:第一行代码。可以通过命令来查看它的状态

命令:git status 查看状态

image-20210427160514557

红色代表当前没有提交到缓存区

小结

如何初始化工作区

git init 初始化成功的标志是有一个.git的隐藏目录

如何查看文件状态

git status

进入文件编辑模式 linux系统

​ vim 文件名然后 按 字母 i(前) a(后) o(下一行)插入数据然后按esc退出====最后按 :wq保存退出。

查看文件内容:cat 文件名 linux系统 05.GIT本地操作-add与commit 目标

​ 可以使用 git add将文件添加到暂存区,使用git commit 提交到本地仓库

内容

image-20210514213652883

工作区提交缓存区

在git控制台中使用 命令

命令:git add readme.txt

image-20210427163714062

这是完成了将文件由工作区提交暂存区

我们通过git status来查看状态

image-20210427163851537

发现这时文件变成绿色,可以提交到本地仓库

缓存区提交本地仓库

命令:git commit -m '第一次提交' 说明:-m 后面跟随的是为你提交的备注,m是单词message信息的首字母 提交信息格式:增删改查第几次提交

image-20210427164054827

注意:如果第一次提交需要填写如下内容:

命令:git config --global user.email '[email protected]' 说明:指定邮箱 命令:git config --global user.name 'suoge' 说明:指定操作者 小结

说一下git add的作用

将工作区的文件添加到暂存区

说一下 git commit的作用

将文件从暂存区提交到本地仓库 git commit -m '信息'

扩展:

添加多个文件 git add [file1] [file2] ... 添加指定目录到暂存区,包括子目录 git add [dir] 添加当前目录下的所有文件到暂存区,不包括被删除的文件 git add . 重要 add 时,一个个文件加比较麻烦,可以用下面的命令将所有变动的文件同步至暂存区(新增、修改、删除) git add -A 下面的命令是将所有修改和删除的文件同步至暂存区,不包括新增文件 git add -u 06.GIT本地操作-差异比较 目标

​ 使用 git diff来比较暂存区、本地库与工作区的内容

内容

使用vim命令,对readme.txt文件进行编辑,添加我是第二行代码,使用wq退出

image-20210427164958299

image-20210514220157895

工作区暂存区比较

命令:git diff readme.txt

image-20210427165428934

工作区本地库比较

命令:git diff HEAD readme.txt

image-20210427165526095

暂存区本地库比较

命令:git diff --cached readme.txt

image-20210427165603933

这里缓存区和本地库没有不同所以没有内容

补充:可以第二次提交到暂存区和本地仓库

小结

工作区与暂存区如何比较

git diff 文件名

工作区与本地库如何比较

git diff head 文件名

暂存区与本地库如何比较

git diff --cached 文件名

07.GIT本地操作-版本回退 目标

​ 掌握 git log、git reflog、git reset 作用

内容

当我们从暂存区提交到本地仓库时,发现当前的提交的版本有问题,希望回退到指定版本如何操作呢?

image-20210517211601346

使用vim命令编辑readme.txt,添加“我是第三行代码”

image-20210427171311902

命令:git add readme.txt 提交到暂存区

image-20210427171445699

命令:git commit -m '第三次提交' 提交到本地仓库

我们可以通过git提供的查看日志命令来查看提交的日志

命令:git log 查看当前提交日志

image-20210517213553964

可以发现,目前为止,我们已经在本地仓库中提交了3次,也就是说有3个不同版本。其中,最近的这个版本有一个标示:HEAD-> master 这就是标记当前分支的当前版本所在位置,如果没有显示当前所在位置可以使用下面命令查看:

命令:git log --decorate 查看当前提交日志,且显示当前分支的当前版本所在位置

在log中,每一个版本的前面,都有一长串随即数字: b44a10787c2b2bcc7ceb9c39cf06309065518d4b ,这是每次提交的commit id ,这是通过SHA1算法得到的值,Git通过这个唯一的id来区分每次提交

回退到之前版本

命令:git reset --hard HEAD^ 回归到上一个版本,Git通过HEAD来判断当前所在的版本位置。那么上一个版本,就用HEAD^标示,上上一个版本就是HEAD^^,当然往上100个版本写100个^比较容易数不过来,所以写成HEAD~100。

image-20210427174346160

这时我们可以在查看一下日志 git log

image-20210517213641987

发现只有两个版本,我们在查看一下文件内容

image-20210427174555939

回退到指定版本

首先们使用

命令: git reflog 查看所有操作

image-20210427175422519

找到之后可以使用如下命令进行回退到指定版本

命令:git reset --hard 版本号 回退到指定版本

image-20210427175601264

我们回到第三次提交,这时我们在查看文件

image-20210427175635302

小结

如何查看当前日志

git log 只能看到当前操作

如何查看所有操作日志

git reflog 查看所有操作日志

如何回退到上一个版本

git reset --hard head^

如何回退到指定版本

git reset --hard 版本号

08.GIT本地操作-修改撤消 目标

​ 掌握 git checkout、git reset head作用

内容

image-20210519104617116

当我们工作区内容想要提交到缓存区时【add】,突然发现有问题,想要撤销该如何处理?

当我们已提交到缓存区的内容,发现出现了bug,这时又应该如何处理哪?

以上操作我们可以使用GIT提供的撤销命令来完成

工作区撤销修改

编辑readme.txt添加“我是第四行”

image-20210428093849437

在你提交缓存区前,你突然发现这个修改是有问题的,你打算恢复到原来的样子。怎么办?

使用git status 命令查看当前状态

image-20210428094405273

命令:git checkout 文件名称 撤销工作区修改

image-20210428094253620

我们撤销后,在查看文件中内容,发现工作区内容已经撤销,并查看状态,发现状态很干净

暂存区撤销修改

使用 vim 命令 编辑readme.txt添加“我是第五行”

image-20210428094942545

使用git add提交文件至暂存区

image-20210428095340143

撤销到工作区

命令:git reset HEAD readme.txt 撤销到工作区

image-20210428095450657

image-20210519111446908

工作区撤销 git checkout readme.txt

image-20210428095544031

我们在查看文件,发现已经恢复到最初始样子

小结

如何实现工作区撤销修改

git checkout 文件名

如何撤销缓存区内容

git reset HEAD 文件名

09.GIT本地操作-总结

image-20211206101038654

初始化工作区 git init 查看状态 git status 提交 工作区提交暂存区 git add 文件 暂存区提交本地库 git commit -m '提交信息' 差异比较 工作区缓存区比较 git diff 文件名 工作区本地库比较 git diff head 文件名 缓存区与本地库比较 git diff --cached 文件名 版本回退 查看日志 git log 回退到上一个版本 git reset --hard head^ 查看所有操作日志 git reflog 回退到指定版本 git reset --hard 版本号 修改撤消 工作区撤消 git checkout 文件名 撤消缓存区(从缓存区撤销到工作区) git reset head 文件名 10.分支操作-分支介绍(掌握) 目标

​ 能说分支作用

内容

我们现在使用Git可以简单理解为阶段性的使用Git保存一下自己写的代码,每次提交形成一个版本信息。但是你能想象出当一个团队所有人提交的版本信息汇集到一起后是什么样子吗?那版本的数量是数以千计的。尽管Git提供了一系列的操作帮助我们完成版本的操作,但是最终架不住版本太多看着乱啊。

比如说张三是一个成熟的开发者,他做完一个模块提交一个版本,李四是一个入行一年的开发者,他做完一个功能提交一个版本,这都是可以接受的,你要碰到王五这种刚刚入行的,他恨不得一个文件提交一个版本,甚至写一个方法就提交一个版本,那Git中管理的版本真的就要数以万计了。

其实理想的情况应该是这样的,张三开发功能A,在A没有完全制作完成之前不要提交版本,等做完了再一次性提交所有的文件。这样每一个版本都是具有非常高的价值的,不会出现大量无效的提交。什么叫无效提交?你一个模块8个类配合在一起工作,你写完一个类提交一个版本,回头不管是回滚也好,对版本进行管理也好,单独一个类自己不能构成一个完整的开发状态,你回滚到这个版本你发现不能用,再换一个还是缺文件,这就让人很崩溃了。

但是作为开发者来说,我打版本也是为了自己用的方便,我写点备份一点,看上去也很合理。这个时候就提出了一个新的需求,能不能我自己提交自己专用的版本,而不要和项目组的核心代码掺和在一起呢?这个功能必须有,这就是下面要说的分支。

那么在说分支前,我们说一下之前的提交到底是什么?

提交的本质:记录仓库中一组文件的变化信息(增、删、改)

分支是什么?

分支就是多次提交串起来的一条线

image-20210428105459135

场景:问题背景:要开发一个新功能,又不想打扰目前分支(main)的功能开发,于是

image-20210428105600960

可以看到 main 分支的开发并不会停止,可以继续进行 c4 这个功能的开发,而 new 分支可以开发新功能 c5,同样不会影响 main

等 new 分支的功能开发测试没有问题了,main 也想要 new 的代码怎么办?

image-20210428105637838

可以使用 merge 命令将 new 分支的变动合并至 main 分支,此时的 c6 中既包含了 c4 以来的修改,也包括了 c5 的修改,这时如果觉得 c5 已经没用了,可以将它删除

我们分支讲解主要包含

创建分支 切换分支 合并分支 查看分支 删除分支 小结 根据自己的理解说一下分支是什么,它有什么作用 分支就是多次提交组成的一条线 作用:可以让我们在团队开发时更加方便 11.分支操作-分支创建与切换 目标

​ 掌握分支创建与切换

内容

image-20210519154511324

创建分支

分支创建示意图:

image-20210519155141909

命令: git branch 分支名 创建dev分支 git branch dev 注意:分支名字随便书写,名字最好达到见名知意,张三---》zhangsan

image-20210428111732860

分支切换

命令: git checkout dev 切换dev分支

image-20210428111809128

编辑readme.txt,添加“我是dev提交的代码”

image-20210428111903117

从工作区提交到缓存区执行:git add readme.txt 执行:从缓存区提交到本地区:git commit -m 'dev分支提交'

image-20210428112155295

查看文件内容

image-20210428112245573

切换到master分支,并查看文件内容

image-20210428112404035

小结

如何创建分支

git branch 分支名称

如何切换分支

git checkout 分支名称

查看分支

git branch

12.分支操作-分支合并与删除 目标

​ 掌握分支合并与删除

内容

上一个示例中,我们已经创建了dev分支,并在分支上添加了内容,如果想要将dev分支内容合并到master上如何操作

分支合并

命令: git merge 分支名 合并dev分支 git merge dev

image-20210428112850683

注意:当前我们是在master分支

合并后,我们发现master分支上的readme.txt文件内容已经改变

分支删除

合并完分支之后,如果不再使用dev分支,则可以删除此分支,先查看当前分支:

命令 git branch 查看分支情况

image-20210428113137676

当前有两个分支dev与master,我们当前是在master分支上,如何删除dev分支

命令 git branch -d 分支名

image-20210428113306375

我们使用git branch查看,发现dev分支已经被删除

小结 创建分支

​ git branch 分支名

如何合并分支

git merge 分支名

如何查看分支

git branch

如何删除分支

git branch -d 分支名

13.GIT远程仓库介绍与码云仓库注册创建 目标

​ 能说出常用的GIT远程仓库,并完成码云仓库的注册创建

内容

本地仓库实际上是存储在个人电脑中的,用于存储个人提交记录与提交日志,说简单点,你现在commit提交的内容都在本地

远程仓库是公网或外网中的一个仓库,主要用于存储个人或团队的提交记录与提交日志,团队合作开发也是靠远程仓库实现的。大家都把东西提交到同一个远程仓库里面就OK了,这样每个人都可以获取到团队内开发的所有内容了。目前市面上常用的git支持的远程仓库有如下三个

常用的远程仓库

GitHub(https://github.com) gitee(https://gitee.com) gitlab(https://about.gitlab.com)

image-20210428123129464

GitHub是一个面向开源及私有软件项目的托管平台,说白了就是给开发者提供了一个远程仓库。当然人家提供的功能还是很强大的,2018年微软以75亿美金收购了GitHub。现在的GitHub除了承载了代码托管平台的功能,更大的功能是组建了一个同性交流平台,大量的码农在上面做技术及非技术的交流,活跃用户还是很多的,可惜这个主站在国外,速度一般。

gitee和GitHub是一样的东西,是开源中国(OSChina)推出的基于Git的代码托管平台,又叫码云。有什么特点呢?有,还很硬的特点,主站在中国,是否秒懂?速度快啊,中国码农的数量那不是一般的多。

GitHub和gitee都是开源的代码托管平台,这里就有一个BUG了,如果我现在做的项目涉密性很强怎么办?放公网上?不现实啊,你再提供高等级的安全服务我也不敢放啊,自己搭一个把,gitlab就有了。gitlab基于git作为版本控制工具的基础上,可以为你搭建一个Web服务器,你就可以理解为自己搭建了一个局域网内能够访问的服务器。啥用?私服啊,代码安全啊,别人访问不到啊,就这个用。

那我们如果玩远程仓库玩哪个?百分之百玩gitee和gitlab啊,速度快,又免费,多好。gitlab还安全。

注册登录

访问地址:https://gitee.com/

image-20210428133022102

请自主完成注册与登录

创建仓库

image-20210428134838700

填写项目相关的信息

image-20210521134738210

image-20210521134909804

仓库创建完毕,可以看到,如果我们要与远程仓库同步,这里支持多种通信协议,当我们选中一种协议后,后面会出现对应的远程仓库地址。

image-20210521135810191

小结

git常用的远程仓库有哪些

github gitee gitlab

14.GIT远程仓库操作-关联、拉取、推送、克隆(不用刻意记住命令) 目标

​ 完成远程仓库的关联、拉取、推送、克隆操作

内容

关联

现在readme.txt已经推送到我们自己的本地仓库,在推送到码云仓库前,我们需要先建立本地仓库与远程仓库的关系

命令:git remote add origin 远程仓库地址 关联远程仓库

image-20210521180201120

image-20210428142729806

拉取:从码云仓库拉取到本地仓库

【注意】在推送代码前必须先拉取代码,否则无法推送本地仓库代码到码云仓库

image-20210521182929934

命令:git pull origin master --allow-unrelated-histories 首次拉取需要添加:--allow-unrelated-histories 命令:git pull 后续拉取

image-20210428142513746

推送:本地仓库推送到码云仓库

image-20210521183204438

命令: git push -u origin master 首次推送 命令: git push 后续推送

image-20210521183418545

image-20210521183355218

码云仓库有推送的信息

image-20210428142800786

克隆

如果我们新加入一个团队,这个时候就需要我们把代码从远程仓库克隆过来,那么咱们操作呢?

新建文件夹learn-Git-B,新建的文件中右键

image-20210428142856239

点击 Git bash Here

命令: git clone 远程仓库

image-20210428143001809

这时候就拉取出远程仓库的内容

image-20210428143027023

小结

1.常见命令

关联远程仓库命令:git remote add origin 远程仓库地址 举例:git remote add origin https://gitee.com/tiansuo123456/itheim-heima141.git 拉取命令:git pull origin master --allow-unrelated-histories 从码云服务器拉取到本地 首次拉取需要添加:--allow-unrelated-histories 命令:git pull 后续拉取 推送命令: git push -u origin master 首次推送 从本地推送到码云 命令: git push 后续推送 克隆命令: git clone 远程仓库 从码云服务器拉取到本地 举例: git clone https://gitee.com/tiansuo123456/itheim-heima141.git

2.git clone(克隆) 与 git pull(拉取) 区别

#1.相同点:都是从远程服务器拉取代码到本地 #2.不同点: git clone(克隆) :是在本地没有版本库的时候,从远程服务器克隆整个版本库到本地,是一个本地从无到有的过程。 git pull(拉取) :在本地有版本库的情况下,从远程库获取最新commit 数据(如果有的话),并merge(合并)到本地。

3.将代码从本地仓库推送到码云仓库,每次都需要输入码云仓库的用户名和密码,这样很麻烦,我们可以参考资料中的以下文件:

image-20210521191734728

15.IDEA中使用GIT-集成GIT 目标

​ 在IDEA中集成GIT,初始化工作区及设置忽略文件

内容

集成

在idea中的file菜单中选中settings

image-20210428143840766

弹出settings后在搜索中输入"git",选择Git,指定你的安装的git.exe目录

image-20210428143901999

校验git是否集成完成,点击test,弹出校验窗口,点击git Executed successed 成功则表示集成完成 image-20210428143920213

创建工程

创建一个普通的java工程git-project项目,结构如下:

image-20210523192249756

基本操作-初始化工作区

点击VCS --> Create Git Repository

image-20211110160101829

选择管理的文件夹,这里我现在的为gitProject文件夹

image-20211110160204702

点击左下角,Git菜单,此时day0901_git下所有的文件都变成棕色,说明我们的工作区添加完成了

image-20211110160452517

忽略文件类型

从version control中我们可以看到有一部分文件,我们是不需要提交到本地仓库中去的

image-20210523200225766

那我们怎么做呢?可以拷贝"资料"中.gitignore文件,到gitProject的根目录:

image-20211110160640332

这个时候你会发现,多余的不需要提交的文件类型被忽略了。如果有新的要忽视的文件类型,你可以在.gitignore中添加

image-20210523202003672

小结

IDEA集成GIT时要指定哪个文件

git.exe

忽略文件有什么作用

让git只针对于我们项目主要文件进行维护

16.IDEA中使用GIT-基本操作-add与commit 掌握 目标

​ 在IDEA中实现工作区提交缓存区与缓存区提交本地仓库操作

内容

工作区提交暂存区 add

选中gitProject项目,右键

image-20210523203451621

可以看到Git中的文件颜色由棕色变成的绿色

image-20211110160838926

暂存区提交本地仓库 commit

点击右下角Version control面板中,选中你要提交的文件,这里我都需要提交,使用全部选中

image-20210523204453618

点击鼠标右键

image-20211110160949435

选中commit:

image-20210523204834640

点击Commit

image-20210428154130013

再次确定,点击Commit

image-20210523210138878

17.IDEA中使用GIT-基本操作-差异化比较 目标

​ 在IDEA中完成差异化比较

内容

工作区与本地仓库比较

在Version Control中选中HelloWorld.java右键:

image-20211110161306919

image-20210523222504160

image-20210523225324524

点击左下角Git--->log,就可以查看提交记录

image-20211110161450315

18.IDEA中使用GIT-基本操作-版本回退及撤消 目标

​ 在IDEA中完成版本回退以及撤消操作

内容

制造问题

选择Demo01.java,提交刚刚修改的内容到本地仓库中:

image-20211110161610414

填写备注,然后点击commit:

image-20210524084755810

在左下角Git中查看log

image-20211110161711598

image-20210524085033636

在Demo01.java中添加

image-20211110161802102

提交到本地仓库

image-20210524085628175

在左下角Git中查看log

image-20211110161905214

可以看出此时:我们一共提交3次,下面我们来进行版本的回退

本地仓库回退撤消

在右下方Git点击log,此时我们可以看到3个提交的版本

image-20211110162000916

现在我们在本地仓库中回退到第二次提交,选择第二次提交的标记,右键

image-20211110162054092

选择Hard

image-20210428163800014

image-20211110162256419

工作区撤消

当我们在工作区编辑代码时候,希望撤销未提交本地仓库的代码时候,在Git中右键

image-20211110162538457

弹出如下窗口

image-20211110162620907

点击Rollback,代码则撤销

image-20211110162719338

说明:针对上述工作区的代码撤消,有同学会有疑问,我直接删除不就完了吗,为什么这么麻烦,其实我们在实际开发中代码会很多,那么当你书写了很多不同地方的代码,以至于你都忘记哪些是新编写的代码了,那么删除是一件很痛苦的事情,并且容易误删,所以使用工作区撤销更加方便。

19.IDEA中使用GIT-远程仓库-创建与关联远程仓库 学习目标:

GitLab简介和用户登录GitLab

GitLab简介

GitLab是一个用于 仓库管理系统的开源项目。使用Git作为代码的管理工具,并在此基础上搭建起来的Web服务。可通过Web界面进行访问公开的或者私人项目。他拥有GitHub和Gitee类似的功能,能够浏览源代码,管理缺陷和注释。可以管理团队对仓库的访问,它非常易于浏览提交过的版本并提供一个文件历史库。团队成员可以利用内置的简单聊天程序(Wall)进行交流。它还提供一个代码片段收集功能可以轻松实现代码复用。

官网:

https://about.gitlab.com

用户登录GitLab

登录网站 http://47.96.143.141:9999/users/sign_in

image-20211116101727095

注意:之前让同学们给老师的用户名和密码以及邮箱一定要确定是正确的,否则无法登录。

image-20211116104117470

登录之后的页面效果:

image-20220410223124069

20.GitLab使用介绍_项目、用户和组介绍(理解概念,除了组长其他人没有权限)

image-20220410224647163

image-20220410224719406

# 1.Projects : 表示gitlab中的项目 # 2.Users :当前gitlab中的所有的用户 # 3.Groups : 当前gitlab中所有的组,其实就是我们公司开发中的小组。分组的好处的是权限具有管理,各个小组之间是无法查看组之间的内容的 21.GitLab使用介绍_取消注册权限(了解概念,除了组长其他人没有权限)

GitLab为了安全起见,是没有注册权限的。这样只能后台生成账号和密码。

image-20220410230825740

image-20220410230904842

image-20211116110723795

22.GitLab使用介绍_创建普通用户(了解,除了组长其他人没有权限)

【1】

image-20220410223917958

按照上述或者如下都可以创建新的用户:

image-20220410224835764

【2】

image-20211116114622479

组长创建组员的时候选择的下面的普通用户,不能选择admin管理员

image-20220410232546694

【3】创建好用户之后组长点击edit进行编辑

image-20220410224039794

【4】在如下的弹出界面中输入密码和确认密码

image-20220120223919951

【5】组员使用你的用户名和密码登录

image-20211116115626722

【6】登录后输入组长给你的密码,以及你新的密码,如果还想使用组长给的密码那就输入之前的密码即可

image-20220120224723458

【7】登录后的效果

普通用户登录的界面:

image-20220410224359045

23.GitLab使用介绍_创建 group并将用户添加到组中(了解,除了组长其他人没有权限)

【1】

image-20220410231259502

image-20220410231356885

【2】

image-20211205225446927

image-20211205224248565

# 注意:组的命名必须按照规范:项目名或者案例名_班级编号_group_组的序号。例如:xuecheng_133_group_01

【3】组创建好之后需要向组中添加成员

image-20220410231812420

image-20211116154719272

注意:各位组长这里需要给每个成员是Developer权限。如果是组长需要给自己一个Owner权限。

image-20211116155324779

【4】添加之后的效果:

image-20211116155702271

24.将本地项目上传到gitlab上(需要组长将项目上传到gitlab上)掌握

【1】在本地新建maven项目

image-20211117095040390

【2】选择New project

image-20220411171955033

image-20220411172310990

【3】在gitlab上创建项目

image-20211117101106087

在gitlab上创建好的项目如下:

image-20220411224132191

image-20220411224431289

【4】回到idea中提交当前代码

image-20220411225148438

【5】推送

image-20220411225235311

image-20220411225310168

image-20220411225420377

image-20220411225523098

【6】gitlab查看推送的结果

刷新网页

image-20220411225905932

image-20220411225949550

image-20220411230031574

image-20220411230045202

说明:各个组长就可以按照上述操作将本地代码上传到gitlab上了。

25.保护master分支(组长完成)掌握

在实际开发中除了组长即管理员,其他人是不能操作master分支的,包括上传和下载。为了防止其他人对master分支修改,所以需要对master分支进行保护。

【1】在gitlab上创建一个dev1分支

image-20220411230340160

image-20220411230447685

image-20211117110421852

说明:在实际开发中每个小组,如果多个人开发相同功能那么就使用同一个分支,如果每个人负责一个功能,那么就给每个人创建一个分支。分支名最好是组员的名字

创建好dev1分支之后:

image-20211117111313258

说明:在实际开发中每个人都在自己的分支上进行开发,如果开发完毕由组长进行分支的合并。

【2】设置master分支不被允许合并,设置其他分支可以合并和推送

image-20220411230759901

image-20211117111649129

image-20211117112936817

受保护之后的效果:

image-20220411231136480

26.从Gitlab上拉取项目至本地

【1】到gitlab中复制要导入项目的连接地址

退回到项目位置,然后选择Clone

image-20211117114200456

【2】关闭项目回到idea主界面

image-20211117113901206

【3】将gitlab的项目连接地址放到URL后面的输入框中

image-20211117114517066

【4】导入之后要查看当前项目在idea中的三个环境:

maven地址

image-20211117115013897

当前idea环境必须都是UTF-8编码

image-20211117115138374

当前使用的是jdk8

image-20211117115314554

27.在idea中切换分支(掌握)

【1】将gitlab中所有的分支拉取到idea中

image-20211117151124785

【2】在idea中查看本地和远程分支

image-20211117151312527

【3】切换到dev1分支上

注意:我们不能在master分支上进行书写代码,都在每个其他分支上写代码,然后最后确定没有问题之后再将其他分支上的代码合并到master分支上。

提交当前分支

很重要。很重要。很重要:在切换其他分支之前必须先将当前分支的代码进行提交,否则当前分支的代码就不存在了

image-20211117151830067

image-20220414091424964

切换分支

image-20211117152321472

image-20220414092021152

image-20220414092045505

导入后的效果

image-20220414092119368

28.将除了master分支推送到gitlab中(掌握)

按照上述操作完成之后,组长布置需求之后,其他人就可以在自己的分支上进行开发,开发完毕并将分支提交到gitlab中。

【1】在dev1分支的测试类中书写新的代码

image-20211117152828805

【2】将新增代码进行提交并推送到gitlab中

image-20211117153349642

image-20211117153455838

【3】gitlab上显示的结果

image-20211117153649736

注意:推送的一定是dev1分支上的代码,如果推送的是master分支上的代码就会报错。

29.将其他分支代码合并到master分支上并提交到gitlab上(组长,掌握)

要想将dev1分支代码合并到master分支上,首先需要切换到master分支上,然后在合并

【1】将当前dev1分支上的代码进行提交

image-20211117154215743

image-20211117155542452

【2】切换到master分支上

切换的一定是本地master分支上。

image-20211117155811722

【3】将dev1分支代码合并到master分支上

image-20211117160111328

【4】将master分支上的代码提交并推送到gitlab上

image-20211117160537386

【5】gitlab上的结果

image-20211117160627202

注意:上述操作都必须是组长操作,如果不是组长不会推送成功。

30 补充

GitLab 用户组中的角色权限图一览

1621781604952

1621781529467

31总结

image-20210926163640427

GIT概念

工作区 就是你在电脑里能看到的目录 暂存区 英文叫 stage 或 index。一般存放在 .git 目录下的 index 文件(.git/index)中,所以我们把暂存区有时也叫作索引(index) 版本库 工作区有一个隐藏目录 .git,这个不算工作区,而是 Git 的版本库 远程仓库 常用的远程仓库有 gitee github gitlab

本地操作

add与commit git add 文件名称 作用 工作区提交暂存区 git commit -m 文件名称 作用 暂存区提交本地仓库 git status 作用 查看文件状态 差异比较 git diff 文件名 作用 工作区与暂存区比较 git diff head 文件名 作用 工作区与本地库比较 git diff --cached 文件名 作用 暂存区与本地库比较 版本回退 git log 作用 查看当前操作日志 git reflog 作用 查看所有操作日志 git reset --hard head^ 作用 回退上一个版本 git reset --hard 版本号 作用 回退到指定版本 修改撤消 git checkout 文件名 作用 工作区撤消 git reset head 文件名 作用 暂存区撤消

分支操作

创建分支 git branch 分支名称 切换分支 git checkout 分支名称 合并分支 git meger 分支名称 查看分支 git branch 删除分支 git branch -d 分支名称

远程仓库

关联 git remote add origin 远程仓库 拉取 git pull 推送 git push 克隆 git clone 远程仓库

IDEA集成GIT操作 重点掌握

所有内容都是操作,参考讲义进行



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有