git diff详解

一直用git diff,可diff的对象究竟是什么差异呢?


一、首先我们要知道,git分为工作区、暂存区、版本库

git追踪的是修改,对一个文件,假设做了一次修改a,处理步骤:

1)工作区:修改a

2)git add,此时修改a提交到了暂存区。工作区中无修改内容,我们认为工作区是“空的”;暂存区中有修改a

3)git commit,此时暂存区的修改a提交到了版本库中,工作区仍然是“空的”,暂存区也成为“空”

此时一次修改完成了。


二、diff内容

“git diff”默认对比的是哪些内容呢?

根据我的测试diff内容有优先级,工作区和暂存区的diff优先级最高

用伪代码描述:

if( 工作区不为空){
    if(暂存区不为空) { 
        print:工作区和暂存区差别; 
    }else{
        print:工作区和版本库的差别; 
    }   
} else {
    if(暂存区不为空){
        print:暂存区和版本库的差别; 
    }else{
        无动作; 
    }   
}


指定对比暂存区和版本库的差别:git diff --cached

指定对比工作区和版本库的差别:git diff HEAD



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值