我错误地将一个目录添加到git中,当我按照提示here通过执行git reset HEAD <file>
来撤消添加时,我惊恐地发现其中一个文件的当前工作副本,有很多变化(工作!),恢复到以前的版本!
结果我失去了几个小时的工作...... :((
我认为仅git reset HEAD <file>
将其从当前索引 without changing anything else 中删除。我错过了什么?
git reset HEAD <file>
是否还应检出来自HEAD的文件?
我怎样才能最大限度地减少将来再次出现这种情况的可能性?
答案 0 :(得分:16)
只有git checkout -- <file>
应该还原之前统计信息中的文件。
git reset HEAD <file>
应该只取消暂存文件,而不是还原其内容。
答案 1 :(得分:2)
git reset
从索引中取消暂存文件。也许您之后添加了--hard
选项或使用了git checkout
?
引用git-reset手册页:
git reset [-q] [&lt; commit&gt;] [ - ]&lt; paths&gt; ... 此表单将所有索引条目重置为其状态。 (它不会影响工作树,也不会影响当前分支。)