我不小心说了git rm -r ..我该如何从中恢复呢?
我没有承诺。
我认为所有的文件都被标记为删除,并从我的本地签出中物理删除。
编辑:我可以(如果我知道命令)恢复到上次提交。但如果我能撤销git rm -r ..因为我真的不确定我在最后一次提交之后和git rm -r之前做了什么。
我不小心说了git rm -r ..我该如何从中恢复呢?
我没有承诺。
我认为所有的文件都被标记为删除,并从我的本地签出中物理删除。
编辑:我可以(如果我知道命令)恢复到上次提交。但如果我能撤销git rm -r ..因为我真的不确定我在最后一次提交之后和git rm -r之前做了什么。
当前回答
我收集了一些文件,并在下次提交之前继续修改,这时我意识到我需要其中一些文件。而不是隐藏和重置,你可以简单地签出你错过/删除的个别文件,如果你想:
git checkout HEAD path/to/file path/to/another_file
这使得其他未提交的更改没有任何变通办法。
其他回答
获取列表提交
git log --oneline
例如,稳定提交的哈希值为:45ff319c360cd7bd5442c0fbbe14202d20ccdf81
git reset --hard 45ff319c360cd7bd5442c0fbbe14202d20ccdf81
git push -ff origin master
我有完全相同的问题:清理我的文件夹,重新安排和移动文件。我输入:git rm。按回车键;然后我觉得我的肠子松了一点。幸运的是,我没有立即输入git commit -m ""。
但是,下面的命令
git checkout .
恢复了一切,救了我的命。
使用Git 2.23+(2019年8月),恢复文件(和索引)的正确命令是使用…Git恢复(不是重置——很难或令人困惑的Git checkout命令)
那就是:
git restore -s=HEAD --staged --worktree -- .
或其缩写形式:
git restore -s@ -SW -- .
如果上述方法都不能正常工作,则可以使用这里的建议检索数据:http://www.spinics.net/lists/git/msg62499.html
git prune -n
git cat-file -p <blob #>
我也遇到过同样的情况。对我来说,解决方案是:
git checkout -- .