Git知识总结

文章详细介绍了Git的三层结构——工作区、暂存区和本地版本库,以及文件的四种状态:未跟踪、暂存、修改和已提交。此外,还讲解了如何在IDEA中集成Gitee,以及Git分支的使用,包括创建、切换和合并分支。在处理合并冲突时,文章提供了解决步骤。
摘要由CSDN通过智能技术生成

Git知识总结

  1. Git三层结构

在这里插入图片描述

  1. 三层结构详解

    1. 工作区:及目前正在编辑的区域,可能是IDEA,可能是文本编辑器等等
    2. 暂存区:将工作区的文件暂存到暂存区中,可以进行回退等操作
    3. 本地版本库:将暂存库的文件提交到本地版本库中进行保存
    4. 远程仓库:Gitee或Github上的仓库
  2. 提交流程图

  3. 文件的四种状态

    • Untracked:未跟踪,此文件在文件夹中,但并没有加入到git仓库,不参与版本控制.通过git add 状态变为Staged.

      在这里插入图片描述

      在文件夹中新建了一个gittest文件,当前显示的就是Untracked

    • Staged状态:暂存状态,执行git commit则将修改同步到库中,这时库中的文件和本地文件又变为一致,文件为 U n m o d i f y \textcolor{Green}{Unmodify} Unmodify状态

      在这里插入图片描述

      当输入git add . 后可以看到 $\textcolor{Green}{new file: gittest} $ 表示该文件已经进入暂存区,可以准备commit到本地仓库

    • Modified状态:修改状态,文件已修改,仅仅是修改,并没有进行其他的操作.这个文件也有两个去处,通过git add可进入暂存staged状态,使用git checkout,则丢弃修改过,返回 U n m o d i f y \textcolor{Green}{Unmodify} Unmodify状态,这个git checkout即从库中取出文件,覆盖当前修改!

      在这里插入图片描述

      当修改文件后,状态变为了 m o d i f i e d \textcolor{Red}{modified} modified如果提交修改变为Staged,也可以通过checkout恢复修改

    • Committed状态:提交状态,只有通过命令git commit之后,才算是真正把暂存区的代码提交了。经过git commit命令之后,所有被提交的文件的状态就是 c o m m i t t e d \textcolor{Green}{committed} committed

      在这里插入图片描述

      提交后,状态未nothing to commit,为commited状态

  4. IDEA集成Gitee(由于Github太慢,本次测试使用Gitee来测试,为中国开源市场贡献!!!)

    1. 下载Gitee插件

      在这里插入图片描述

    2. 在Setting -> Version Control 中找到 Gitee,登录Gitee

      在这里插入图片描述

  5. Git分支

    1. Git分支的作用:如果有个大型项目需要多次更改当前版本的,但是每次进行修改,上传到Git又很麻烦,这时就可以使用Git分支功能,通过创建一个分支,在分支中进行大量修改,直到合适为止,之后再一次性的上传到Git远程仓库中。

      比如下图来说,在master这个主线上运行,运行的同时要增加功能,那我们就可以把master赋值一份出来,在复制的地方进行开发,在开发完功能后就可以更新版本正常使用

      当我们引入新功能有bug,就可以从master分支再引一个分支hot-fix(热修分支),对代码进行修改,修改后再合并到master

    2. 分支常用方法

      1. 查看分支

        git branch -v
        

        在这里插入图片描述

        当前分支为 m a s t e r \textcolor{Green}{master} master

      2. 创建分支

      git branch 分支名字
      
      1. 切换分支
      git checkout  分支名称
      

      在这里插入图片描述

      1. 再次提交并push代码到Gitee中,发现Gitee中已经有了firstbranch这个分支

      在这里插入图片描述

      1. 合并分支与master节点(正常合并的情况)
      git checkout master//切换回主分支
      git merge 分支名
      

      在这里插入图片描述

      正常合并后,发现多了一条数据

      1. 冲突合并(分支和master共同修改了同一行代码的值,不知道用那个作为正确答案)

      在这里插入图片描述

      master修改Gittest,向最后一行添加了 System.out.println(“test conflict by master”);

      在这里插入图片描述

      firstbranch也修改了Gittest,向最后一行添加了System.out.println(“test conflict by branch”);

      之后运行 git merge firstbranch,发现出现了冲突问题

      在这里插入图片描述

      1. 解决合并冲突问题
      2. 删除<<<<<<<HEAD,删除等号,删除>>>>>>>>firstbranch
      3. 之后再次add. commit push即即可
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值