git reset --soft“ HEAD ^ 6”是什么意思?

时间:2019-04-09 11:58:26

标签: git git-reset

在我运行git reset --soft "HEAD^6"后,我在本地存储区上错误地运行了git reset --soft "HEAD^"

现在我可以找到100多个具有本地更改的文件

git reset --soft "HEAD^6"是什么意思?

编辑:对于那些问我为什么这样做的人来说,这是一个错字。

3 个答案:

答案 0 :(得分:5)

关于reset --soft

git reset --soft <commitHash>将移动HEAD,而不会更改文件状态(doc)。

这就是git status突然看到差异的原因。现在,它将您的(未更改的)代码与较旧的参考进行比较。但是当您执行最后两个操作时,文件没有未更改


关于refspec HEAD^6

HEAD^6尝试指向HEAD提交的第六个父对象。在大多数情况下,这将失败。也就是说,除非您的HEAD提交是(至少)六头章鱼合并的结果。我想我们可以排除这种情况。


结论

因此第二个操作失败,并且是空操作。如果您打算进行第一次重设,那就很好了!

答案 1 :(得分:2)

正如其他人提到的,它将HEAD更改为第6个父级。要返回到先前的状态,您可以使用git reset --hard origin/<branch>重置为遥控器。如果您尚未推出更改,请查看git reflog,然后执行git reset --hard <sha>

答案 2 :(得分:-1)

git reset --soft“ HEAD ^ 6”将最后6次提交还原为工作目录。 如果将更改推送到远程位置,则可以通过git reset --hard origin/<<branch>>

返回到先前的状态