所有这些git命令之间的区别是什么?

所有这些git命令之间的区别是什么?,git,Git,所有这些git命令之间的区别是什么 git reset --hard HEAD git reset --hard HEAD~1 git reset --hard HEAD^ git reset --hard ORIG_HEAD git reset--hard HEAD只需从工作树中收回所有更改(无备份) git reset--hard HEAD~1将您带回当前版本的父版本(无备份,无保存更改) git reset——硬头^与前一个相同。语法上有点不同。^用于在合并提交时指向父级,而~是父级以第

所有这些git命令之间的区别是什么

git reset --hard HEAD
git reset --hard HEAD~1
git reset --hard HEAD^
git reset --hard ORIG_HEAD
git reset--hard HEAD
只需从工作树中收回所有更改(无备份)

git reset--hard HEAD~1
将您带回当前版本的父版本(无备份,无保存更改)

git reset——硬头^
与前一个相同。语法上有点不同。^用于在合并提交时指向父级,而~是父级以第一个父级的修订返回。因此
HEAD~
=
HEAD^
但是
HEAD~2
意味着从当前版本回到历史上的2个版本,而
HEAD^2
则是当前版本的第二个父版本(假设当前版本是合并提交)


git reset——硬原版头
将您带回(无备份)上次签出/合并/提交/还原/选择操作之前的版本(与当前版本无必要的父子关系)。如果您在
branchA
上,然后切换到
branchB
,则
ORIG_HEAD
将是
branchA
。。。实际上不是分支机构本身,而是当时的修订版。它已经不再使用了,因为
HEAD@{1}
语法更加强大,因为你可以用
HEAD@{3}
说出其他事情,比如我在3次修订前的位置。因此,如果您在
branchA
,切换到
branchB
,然后
branchC
,那么
HEAD{1}
将是
branchB
HEAD{2}
将是branchA(同样,不是分支,而是它们当时指向的修订。如果分支移动,这不会更改修订).

阅读有关如何指定的文档。您的问题是否与
git reset
本身的功能、
--hard
标志添加到
git reset
、和/或修订说明符
HEAD
ORIG\u HEAD
有关尚不完全清楚,还有带后缀的变体。我想知道关于修订说明符的情况。头,头~1,头^和原头