git reset --hard <ref>在分离的头部是安全的

时间:2017-09-10 17:31:24

标签: git

在分离的HEAD模式下git reset --hard <ref>是否安全(不考虑未经修改的更改)? AFAIK,所有这一切都是将HEAD指向ref并检查索引和工作树,就像git checkout <commit>那样,并且相同的沙箱仍然适用。它是否正确?所以没有危险,只要没有移动分支尖端,对吧?这在分离的HEAD模式下不会发生吗?

1 个答案:

答案 0 :(得分:1)

如果你有一个分离的HEAD,那么只有HEAD被移动到<ref>。如果您检出分支,那么它也会将分支移动到该状态。

有一点需要注意的是,实际上没有提交任何提交,使用普通git log命令可能无法再显示这些提交 - 但除非您执行git gc --prune(git clean)或其他内容,否则您将仍然可以在使用git fsck --lost-foundgit log --walk-reflogs --oneline --decorate之类的命令发出重置命令之前进入你开始的提交...即git永远不会删除任何东西,除非你强制它。