git reset之间的区别 - 硬HEAD ^ vs git reset - 硬HEAD?

aht*_*rix 6 git github

什么是^git reset --hard HEAD^做而不只是git reset --hard HEAD 有没有区别?

Pau*_*aul 10

HEAD^是父提交HEAD.

如果你想详细介绍,那么提交的第一个父项的位置是ref^快捷方式(是提交的第二个父项,如果提交不是合并提交,则可能不存在).ref^1ref^1ref^2

还有ref~也是提交的第一个父母.它也是一个捷径ref~1.但之间的区别ref^2,并ref~2是,ref~2是提交的第一个父母的第一个祖先.可以有ref~1,ref~2..., ref~n(如果历史是足够长的时间).

至于git reset- 它将当前分支重置为您指定的提交(--hard意味着丢弃索引和工作树更改).git reset --hard HEAD^向后重置当前分支一个提交,而git reset --hard HEAD只丢弃所有本地更改.