git2

1. add和commit补充

​ 文件修改后首先要add添加到暂存区,commit提交的是暂存区里面的内容,但是并不会清空暂存区
​ 接下来就来重新认识一下昨天的git dif**f和**git diff –cached的区别
​ 不加–cached代表比较的是工作区和暂存区中代码的区别
​ 加了后代表比较暂存区和分支(已提交的)代码的区别
​ 用例子实际来看一下:
这里写图片描述
文件已经做了更改
这里写图片描述
由于修改后的文件并没有添加到暂存区,所以暂存区的文件和分支上是相同的,所以加–cached无反应
同时工作区代码修改了,和暂存区就有区别了,所以会显示出被修改的部分
这里写图片描述
add以后暂存区和工作区同步,就会显示出暂存区和分支上的不同了

同时提醒,修改文件后一定要先add到暂存区再commit,因为你修改的文件并不会从工作区默认添加到暂存区,而commit只会提交暂存区的内容

2. 撤销修改

​ 1. 如果修改了工作区的代码,发现有问题,想回复到修改前怎么办(尚未add到暂存区)?当然可以自己手动一行行删除,但是如果你忘记修改前的部分都是哪些或者修改部分太多怎么办?尝试git checkout
这里写图片描述
我们git diff 发现我们写了错误的代码,想要回复到上一次add前的代码,在使用git status时系统已经提示使用git checkout 了,使用以后发现修改被撤销,文件恢复成了上一次成功add时的样子

会使用暂存区的文件覆盖工作区的该文件

  1. 如果add了以后并未提交,想撤销修改怎么办

    使用git reset HEAD file (和撤销commit差不多,不过是当前指针HEAD)
    这里写图片描述
    这时该文件提交到暂存区的动作被撤销了,但是工作区的代码并没有发生变化

    分支上的代码会覆盖掉暂存区,但是不影响工作区

    3. 删除文件

    命令git rm fileName ,然后git commit永久删除一个文件(文件从版本库中也被永久删除)

    使用linux下使用rm命令或者Windows下右键(delete)删除的文件,可以使用git checkout – fileName恢复

    重要的一点是checkout 是使用暂存区去恢复工作区

    而像reset则是用分支去恢复,你使用git rm删除文件的时候,会先执行rm,同时会把文件命令记录提交到暂存区,再commit就会永久删除了(会删除文件版本库里面的内容),此时使用checkout是没有意义的,因为暂存区也没有相应的内容了,这时只能回滚版本库信息。

    总结:rm或者右键误删使用checkout

    git rm前并未提交 reset到HEAD,使用版本库内容覆盖暂存区

    git rm 后并提交 回滚版本库

    后面这两种情况回滚后工作区、暂存区、分支三区上的该文件内容是相同的

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值