我知道,默认情况下,除非签出以前的提交,否则HEAD
是当前签出分支上的最新提交。
之间的区别是什么
git reset HEAD
git reset HEAD~
我的理解:
第一个命令将重置最近的提交-为什么有人会这样做?除非例如HEAD
在运行此重置命令之前使用checkout命令指向另一个位置。对的
第二个命令将在头之前重置提交,实际上最近的提交现在将成为孤立的。对的
git reset X
与git 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的提交,除非它可以从其他引用(分支、标记(访问。