git add命令和Git commit执行原理

一.git本地仓库结构

  1. 工作区(working directory / working tree
  2. 存区(staging area)
  3. 版本库(git directory / repository)
    git本地仓库结构图:在这里插入图片描述

二.git status查看代码文件的状态

  • 代码文件分成两种:
  1. 一种是tracked,tracked文件就是已经提交到git版本库中的文件,后面可以处于modified或者staged状态
  2. 一种是untracked,就是从来没有提交到git版本库的代码文件(也从来没有放入暂存区

实例讲解git status 文件的状态:

  1. 可以新建一个TestServiceImpl.java,然后执行git status命令,看一下当前的状态,
    在这里插入图片描述
    此时git status会告诉你,有文件没有被提交到git仓库中或者是暂存区中过,就是untracked,就是从来没有被git追踪过它的版本,甚至第一个版本都没有被git追踪。

  2. git add oa-auth/src/main/java/com/zhss/oa/auth/service/impl/TestServiceImpl.java命令
    在这里插入图片描述
    TestServiceImpl.java这个文件,从untracked状态,变成了new状态,就是一个第一次进入git托管的一个新文件,看到的第一个版本

  3. git commit -m ‘add TestServiceImpl class’ 在这里插入图片描述
    此时,这个文件就进入了一个tracked状态,已经被git开始追踪了

  4. 然后对TestServiceImpl.java进行修改,加入一个方法,接着看一下状态在这里插入图片描述
    此时变成了modified状态,就是已经被追踪了,但是后来又被修改了,但是是changes not staged for commit,就是被修改了,但是没有被staged,staged就是还没有被加入暂存区

  5. 再次执行git add --all .命令在这里插入图片描述
    此时的状态是,changed to be committed,modified,此时文件被放入了暂存区,modified状态,同时等待被commit提交到git仓库中去

总结:
(1)新文件刚创建:untracked,此时仅仅停留在工作区中
(2)git add 新文件:new file,此时已经被追踪了,放入了暂存区中 => staged
(3)git commit 新文件:committed,已经被追踪了,放入了git仓库中 => committed
(4)修改那个文件:modified,changes not staged to be committed,没有加入暂存区,被修改的内容仅仅停留在工作区中 => modified
(5)git add 修改文件:modified,changes to be committed,修改的文件版本被已经加入暂存区 => staged
(6)git commit 修改文件:committed,修改后的新版本提交到了git仓库中 => committed

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值