首页 > 其他分享 >GIT详细教学(保姆式教学)

GIT详细教学(保姆式教学)

时间:2024-09-06 19:23:50浏览次数:14  
标签:git 版本 本地 仓库 教学 GIT 提交 分支 保姆式

GIT

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

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

  • GIT作用

    • 代码共享

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

      在这里插入图片描述

    • 回溯版本

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

      在这里插入图片描述

    • 追踪信息

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

      在这里插入图片描述

小结
  • 什么是git,它的作用是什么

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

    2)作用:

    ​ 1.代码共享

    ​ 2.信息追踪

    ​ 3.版本回溯

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

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

    在这里插入图片描述

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

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

内容

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

# 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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

点击Next

在这里插入图片描述

点击Next

在这里插入图片描述

点击Next

在这里插入图片描述

点击Next

在这里插入图片描述

点击Next

在这里插入图片描述

后面步骤直接都是Next

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

​ 说出 git init、git status作用

内容
  • 初始化工作区

    在这里插入图片描述

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

    • 如何初始化工作区

      命令:git init 初始化
      

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

      在这里插入图片描述

      在这里插入图片描述

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

      在这里插入图片描述

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

  • 查看状态

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

    命令:git status 查看状态
    

    在这里插入图片描述

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

小结
  • 如何初始化工作区

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

  • 如何查看文件状态

    git status

  • 进入文件编辑模式 linux系统

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

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

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

内容

在这里插入图片描述

  • 工作区提交缓存区

    在git控制台中使用 命令

    命令:git add readme.txt 
    

    在这里插入图片描述

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

    我们通过git status来查看状态

    在这里插入图片描述

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

  • 缓存区提交本地仓库

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

    在这里插入图片描述

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

    命令: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退出

在这里插入图片描述

在这里插入图片描述

  • 工作区暂存区比较
命令:git diff readme.txt

在这里插入图片描述

  • 工作区本地库比较

    命令:git diff HEAD readme.txt
    

    在这里插入图片描述

  • 暂存区本地库比较

    命令:git diff --cached readme.txt
    

    在这里插入图片描述

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

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

小结
  • 工作区与暂存区如何比较

    git diff 文件名

  • 工作区与本地库如何比较

    git diff HEAD 文件名

  • 暂存区与本地库如何比较

    git diff --cached 文件名

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

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

内容

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

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

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

在这里插入图片描述

可以发现,目前为止,我们已经在本地仓库中提交了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。 
    

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

  • 回退到指定版本

    首先使用

    命令: git reflog 查看所有操作
    

    在这里插入图片描述

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

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

    在这里插入图片描述

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

    在这里插入图片描述

小结
  • 如何查看当前日志

    git log 只能看到当前操作

  • 如何查看所有操作日志

    git reflog 查看所有操作日志

  • 如何回退到上一个版本

    git reset --hard head^

  • 如何回退到指定版本

    git reset --hard 版本号

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

​ 掌握 git checkout、git reset head作用

内容

在这里插入图片描述

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

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

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

  • 工作区撤销修改

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

    在这里插入图片描述

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

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

    在这里插入图片描述

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

    在这里插入图片描述

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

  • 暂存区撤销修改

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

    在这里插入图片描述

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

    在这里插入图片描述

    撤销到工作区

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

    在这里插入图片描述

    在这里插入图片描述

    工作区撤销 git checkout readme.txt

    在这里插入图片描述

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

小结
  • 如何实现工作区撤销修改

    git checkout 文件名

  • 如何撤销缓存区内容

    git reset HEAD 文件名

09.GIT本地操作-总结

在这里插入图片描述

  • 初始化工作区 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个类配合在一起工作,你写完一个类提交一个版本,回头不管是回滚也好,对版本进行管理也好,单独一个类自己不能构成一个完整的开发状态,你回滚到这个版本你发现不能用,再换一个还是缺文件,这就让人很崩溃了。

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

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

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

分支是什么?

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

在这里插入图片描述

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

在这里插入图片描述

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

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

在这里插入图片描述

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

我们分支讲解主要包含

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

​ 掌握分支创建与切换

内容

在这里插入图片描述

  • 创建分支

    分支创建示意图:

    在这里插入图片描述

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

    在这里插入图片描述

  • 分支切换

    命令: git checkout dev   切换dev分支
    

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    查看文件内容

    在这里插入图片描述

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

    在这里插入图片描述

    注意:如果没有将dev分支合并到主分支上,那么在主分支即master上面是无法查看到dev分支提交的内容

小结
  • 如何创建分支

    git branch 分支名称

  • 如何切换分支

    git checkout 分支名称

  • 查看分支

    git branch

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

​ 掌握分支合并与删除

内容

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

  • 分支合并

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

    在这里插入图片描述

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

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

  • 分支删除

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

    命令 git branch 查看分支情况
    

    在这里插入图片描述

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

    命令 git branch -d 分支名 
    

    在这里插入图片描述

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

小结
  • 创建分支

​ git branch 分支名

  • 如何合并分支 (项目经理或者组长)

    git merge 分支名

  • 如何查看分支

    git branch

  • 如何删除分支

    git branch -d 分支名

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

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

内容

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

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

常用的远程仓库

在这里插入图片描述

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

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

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

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

  • 注册登录

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

    在这里插入图片描述

    请自主完成注册与登录

  • 创建仓库

在这里插入图片描述

填写项目相关的信息

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

小结
  • git常用的远程仓库有哪些

    github gitee gitlab

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

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

内容

在这里插入图片描述

  • 关联

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

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

    在这里插入图片描述

    在这里插入图片描述

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

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

    在这里插入图片描述

    码云仓库有推送的信息

    在这里插入图片描述

  • 克隆

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

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

    在这里插入图片描述

    点击 Git bash Here

    命令: git clone 远程仓库
    

    在这里插入图片描述

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

    在这里插入图片描述

小结

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

在这里插入图片描述

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

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

内容
  • 集成

    在idea中的file菜单中选中settings

    在这里插入图片描述

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

    在这里插入图片描述

    校验git是否集成完成,点击test,弹出校验窗口,点击git Executed successed 成功则表示集成完成
    在这里插入图片描述

  • 创建工程

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

    在这里插入图片描述

  • 基本操作-初始化工作区

    点击VCS --> Create Git Repository

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

  • 忽略文件类型

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    在这里插入图片描述

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

    git.exe

  • 忽略文件有什么作用

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

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

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

内容
  • 工作区提交暂存区 add

    选中gitProject项目,右键

    在这里插入图片描述

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

    在这里插入图片描述

  • 暂存区提交本地仓库 commit

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

    在这里插入图片描述

    点击鼠标右键

    在这里插入图片描述

    选中commit:

    在这里插入图片描述

    点击Commit

    在这里插入图片描述

再次确定,点击Commit

在这里插入图片描述

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

​ 在IDEA中完成差异化比较

内容
  • 工作区与本地仓库比较

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

    在这里插入图片描述

    在这里插入图片描述

    在这里插入图片描述

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

    在这里插入图片描述

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

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

内容
  • 制造问题

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

    在这里插入图片描述

    填写备注,然后点击commit:

    在这里插入图片描述

    在左下角Git中查看log

    在这里插入图片描述
    在这里插入图片描述

    在Demo01.java中添加

    在这里插入图片描述

    提交到本地仓库

    在这里插入图片描述

    在左下角Git中查看log

    在这里插入图片描述

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

  • 本地仓库回退撤消

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

    在这里插入图片描述

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

    在这里插入图片描述

    选择Hard

    在这里插入图片描述

    在这里插入图片描述

  • 工作区撤消

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

    在这里插入图片描述

    弹出如下窗口

    在这里插入图片描述

    点击Rollback,代码则撤销

    在这里插入图片描述

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

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  或者    http://git.eehp.cn/users/sign_in
    

    在这里插入图片描述

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

在这里插入图片描述

登录之后的页面效果:

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

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

【1】

在这里插入图片描述

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

在这里插入图片描述

【2】

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

【7】登录后的效果

普通用户登录的界面:

在这里插入图片描述

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

【1】

在这里插入图片描述

在这里插入图片描述

【2】

在这里插入图片描述

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述

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

在这里插入图片描述

【4】添加之后的效果:

在这里插入图片描述

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

【1】在本地新建项目

在这里插入图片描述

【2】选择New project

在这里插入图片描述

在这里插入图片描述

【3】在gitlab上创建项目

在这里插入图片描述

注意啦:去掉Initialize repository with a README的复选框

在这里插入图片描述

注意啦:创建的项目必须选择组

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

在这里插入图片描述

【4】选中当前项目的地址进行clone

在这里插入图片描述

【5】一定将idea中的代码进行提交到本地仓库

【6】

在这里插入图片描述

【7】

在这里插入图片描述

【8】

在这里插入图片描述

【9】

在这里插入图片描述

【10】

在这里插入图片描述

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

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

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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

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

创建好dev1分支之后:

在这里插入图片描述

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

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

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

受保护之后的效果:

在这里插入图片描述

26.从Gitlab上拉取项目至本地(组员和组长)

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

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

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

  • maven地址

在这里插入图片描述

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

在这里插入图片描述

  • 当前使用的是jdk8

在这里插入图片描述

27.在idea中切换分支(掌握,所有人)

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

在这里插入图片描述

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

在这里插入图片描述

【3】切换到dev1分支上

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

  • 提交当前分支

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

在这里插入图片描述

在这里插入图片描述

  • 切换分支

先从main切换为master,然后提交master,然后切换dev1.

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

  • 导入后的效果

在这里插入图片描述

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

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

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

在这里插入图片描述

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

在这里插入图片描述

在这里插入图片描述

【3】gitlab上显示的结果

在这里插入图片描述

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

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

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

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

在这里插入图片描述

在这里插入图片描述

【2】切换到master分支上

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

在这里插入图片描述

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

在这里插入图片描述

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

在这里插入图片描述

【5】gitlab上的结果

在这里插入图片描述

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

30 补充

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

在这里插入图片描述

在这里插入图片描述

31总结

在这里插入图片描述

  • 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操作 重点掌握

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

标签:git,版本,本地,仓库,教学,GIT,提交,分支,保姆式
From: https://blog.csdn.net/qq_42810926/article/details/141966822

相关文章

  • Git使用经验总结6-删除远端历史记录
    删除远端的历史记录但是不影响最新的仓库内容是笔者一直想实现的功能,有两个很不错的用处:有的历史提交不慎包含了比较敏感的信息,提交的时候没注意,过了一段时间才发现。这个时候已经有了很多新的历史提交,无法再回退了。有时候会拿Git仓库存储代码文件以外的内容,比如美术资源、依......
  • 《网络操作系统》授课教学安排
    《网络操作系统》授课教学安排2+4+6+8+3+4+8=35(课时)项目一认识计算机网络(2课时)模块1典型中小型企业网络案例分析(1课时)模块2计算机网络基础知识(1课时)项目2建立企业内部网络环境(4课时)模块1建立企业内部网络软件环境(2课时)模块2配置网络连接实现企业内部网络......
  • git如何回滚代码
     方法一:使用gitreset命令命令可以将当前分支的HEAD指针指向指定的提交,从而回退代码到指定版本。该命令有三种模式:–soft、–mixed和--hard。它们的区别在于回退代码的程度不同。--mixed(默认):将HEAD指针和暂存区都回退到指定提交,但不改变工作区的内容。--soft......
  • 如何将源码压缩后发布到 GitHub 或其他平台
    在软件开发过程中,源码的管理和发布是非常关键的环节。特别是在需要对源码进行共享、分发或归档时,压缩和上传源码到平台如GitHub、GitLab、或其他云存储服务上是常见的做法。为什么需要压缩源码在一些场景下,开发者可能需要将源码进行压缩后发布,例如:1.文件体积较大:项目文件......
  • git 管理
    安装sudoapt-getinstallgit当前环境为Linuxgitinit初始化git仓库(Ctrl+H显示隐藏文件夹)gitconfiguser.namexxxgitconfiguser.emailxxx.com4.touch文件,新建文件5.gitstatus查看当前git工作状态6.gitaddxx将工作区域的文件,增加到缓存区7.git......
  • git 推送本地文件
    引言参考文章:Git操作全流程介绍Git的工作流程如下所示:1.创建仓库1.1新建gitee仓库在gitee中创建一个仓库HelloWorld,如下所示:1.2初始化本地仓库假设本机有一个MyCode文件夹,进入该文件夹目录下,在该处打开gitbash。,输入命令将该文件夹初始化为git仓库:len......
  • idea安装git commit comment plugin增强git提交注释规范
    一、安装插件打开idea的设置界面并找到插件二、重启idea并打开gitcommittemplate三、打开提交弹窗,可以选择gitcomment的类型说明安装成功......
  • 基于SpringBoot+Vue+uniapp的教学辅助微信小程序(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • 基于SpringBoot+Vue+uniapp的课程教学网站(源码+lw+部署文档+讲解等)
    文章目录前言详细视频演示具体实现截图技术栈后端框架SpringBoot前端框架Vue持久层框架MyBaitsPlus系统测试系统测试目的系统功能测试系统测试结论为什么选择我代码参考数据库参考源码获取前言......
  • git 提交代码命令
    git命令gitaddfiles添加修改的文件到暂存区gitcommit-m"备注"   提交代码gitpull拉取他人代码(防止代码提交上去之后把别人的代码覆盖了)如果与他人的代码有冲突了解决冲突,保留需要的代码再提交gitpush将代码推送origin上gitbranch  XXX  创建XXX分......