git-reset

概念

  1. 本地仓库
  2. 暂存区
  3. 工作区

命令操作

命令解析

  1. reset操作将移动 HEAD指向,如果当前分支为develop,此时develop的指向也将改变。reset修改的是.git/refs/heads/develop的内容。
  2. checkout修改的是.git/HEAD的内容。

常用命令

  • git reset --soft HEAD~ 工作区和暂存区不变,仓库指向上一版本;本质上是撤销git commit命令;重新修改代码进行提交,类似git commit --amend命令;
  • git reset --mixed HEAD~ 工作区和仓库不变,暂存区指向上一版本;git reset的默认行为;
  • git reset --hard HEAD~ 将仓库,暂存区,工作区,重置为上一版本;--hard 标记是 reset 命令唯一的危险用法,对于提交的记录可通过reflog进行找回;
  • git reset --mixed HEAD file.txt

撤销命令

  • git commit --amend 重新修改上提交信息,或者将当前修改合并到上一版本;
  • git reset HEAD test.txt 撤销git add test.txt操作
  • git checkout -- test.txt 危险操作,将修改重置为当前版本,修改内容丢失。

参考: [参考文档] (https://git-scm.com/book/zh/v2/Git-%E5%B7%A5%E5%85%B7-%E9%87%8D%E7%BD%AE%E6%8F%AD%E5%AF%86)

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。