git reset HEAD 与 git reset --hard HEAD的区别

感谢原文作者:天地逍遥
原文链接:https://www.jianshu.com/p/aeb50b94e6c0

git reset HEAD 是将咱暂存区和HEAD的提交保持一致

git reset --hard HEAD 是将工作区、暂存取和HEAD保持一致

测试 git reset HEAD

  1. 创建一个readme.md 的文件

在这里插入图片描述

  1. 创建一个commit 执行以下命令
git add -A
git commit -m "create readme.md test file"

查看提交

git log --all --graph --oneline

在这里插入图片描述

  1. 添加暂存取的文本
    在这里插入图片描述
    执行命令,保持到暂存取
git add -A

执行命令,比较暂存取和HEAD的区别

git diff --cached

在这里插入图片描述

  1. 添加工作区的的内容
    在这里插入图片描述
    执行命令,比较工作区和暂存取的不同
git diff 

在这里插入图片描述

  1. 执行命令
git reset HEAD

在这里插入图片描述
比较工作区和暂存区的内容

执行命令

git diif

在这里插入图片描述
比较暂存取和HEAD的内容

执行命令

git diff --cached

在这里插入图片描述
发现暂区和HEAD没有区别

说明 git reset HEAD 会把暂存区恢复成HEAD

  1. 执行命令
git add -A

添加到暂存区

执行

git diff --cached

在这里插入图片描述
发现暂存区添加了两行内容

  1. 工作区添加一行文字
    在这里插入图片描述
    执行
git reset --hard HEAD

在这里插入图片描述
执行

git diff
git diff --cached

发现工作区、暂存区和HEAD没有区别
在这里插入图片描述
说明执行 git reset --hard HEAD 命令 会将工作区和暂存区恢复成HEAD

原文地址:https://www.cnblogs.com/tfxz/p/12701688.html