我做了
git rm -f -r
认为索引中的所有文件将被删除,但它们已从我的文件夹中删除。
如何取回我的文件?
答案 0 :(得分:1)
如果您的工作目录仍然存在并且它包含.git
子目录,那么您可以使用git reset --hard HEAD
,它将从HEAD指示的当前git提交重新创建工作目录。
您的问题看起来像在添加上游时添加了一个额外的参数。你需要:
git remote set-url origin https://...
或
git remote add origin https://....
答案 1 :(得分:0)
如果你的文件已被推送,快速修复就是从github再次克隆存储库。
否则,如果您的文件已被git跟踪,您应该能够使用git reflog命令恢复它们。
否则,请考虑使用某些文件恢复软件(即http://pcsupport.about.com/od/filerecovery/tp/free-file-recovery-programs.htm)
答案 2 :(得分:0)
取决于删除后存储库的状态:
如果git status
未显示您要保留的任何更改,则只需将存储库还原为上次提交:git reset --hard HEAD
或git reset --hard
(提交即HEAD指向默认参数)
如果您要保留已经添加到git add
索引的更改,则这些更改和文件删除都将在索引中。在这种情况下,您必须手动分离这些更改。例如,您可以对包含要保留的更改的文件执行git reset --soft -- <path_to_file>
。然后使用git stash --keep-index
存储非暂存文件。然后,使用git reset --hard
将存储库还原到上次提交。最后,您使用git stash apply
重新应用您预先隐藏的更改。检查一切是否很酷,并使用git stash drop
删除隐藏的信息。
如果您想要保留尚未添加到索引中的更改,请使用方法#2并忽略第一阶段(要保留的更改的软重置)。
请注意,如果删除之前删除的文件中有任何修改,那么您将无法使用Git恢复它们。
偏离主题:我不太明白你的初衷是什么,但也许git rm --cached
是你正在寻找的命令。
希望这有帮助
答案 3 :(得分:0)
您好我得到了答案并检索了文件 所以我做了
git status
显示要提交的更改 然后取消暂停执行的提交
git reset HEAD
你必须用文件名
执行上面的命令所以上面的命令取消了所有的更改
git status
显示未提交的更改
git checkout -
你必须用文件名
执行上述命令所以我收回了所有文件