重置HEAD和HEAD~之间有什么区别

  • 本文关键字:HEAD 区别 之间 重置 git
  • 更新时间 :
  • 英文 :


我知道,默认情况下,除非签出以前的提交,否则HEAD是当前签出分支上的最新提交。

之间的区别是什么

  • git reset HEAD
  • git reset HEAD~

我的理解:

第一个命令将重置最近的提交-为什么有人会这样做?除非例如HEAD在运行此重置命令之前使用checkout命令指向另一个位置。对的

第二个命令将在头之前重置提交,实际上最近的提交现在将成为孤立的。对的

git reset Xgit reset --mixed X相同。查看文档,即:

git reset [<mode>] [<commit>]

此表单将当前分支头重置为<commit>,并可能更新索引(将其重置为<commit>的树(工作树取决于CCD_ 10。如果省略<mode>,则默认为--mixed<mode>必须是以下之一:

--mixed

重置索引,但不重置工作树(即,已更改的文件被保留,但未标记为提交(,并报告未更新。这是默认操作。

如果指定了-N,则删除的路径将标记为有意添加(请参阅git add(。

因此,git reset --mixed重置将所有已暂存的更改再次标记为未暂存。CCD_ 17完全相同。git reset --mixed HEAD^将您的头向后移动一(跟随第一个父对象(。

执行git reset HEAD^将丢失执行此命令时为HEAD的提交,除非它可以从其他引用(分支、标记(访问