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

git reset --soft "HEAD^6" what does it means?

我 运行 git reset --soft "HEAD^6" 错误地在我的本地回购之后我 运行 git reset --soft "HEAD^"

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

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

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

git reset --soft "HEAD^6" 将最后 6 次提交恢复到工作目录。 如果您的更改被推送到远程,您可以通过 git reset --hard origin/<<branch>>

返回到之前的状态

关于reset --soft

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

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


关于参考规格 HEAD^6

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


结论

所以第二个操作失败了,是一个空操作。如果您的第一次重置是有意的,那么您就可以开始了!

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