git recover deleted file where no commit was made after the delete
我删除了一些文件。
我还没有承诺。
我想重置我的工作区以恢复文件。
我做了一个
但删除的文件仍然丢失。
1 2 3 4 5 6 7 8 | # On branch master # Changes to be committed: # (use"git reset HEAD <file>..." to unstage) # # deleted: cc.properties # deleted: store/README # deleted: store/cc.properties # |
为什么
输出告诉您需要做什么。
这将使RM操作不稳定。之后,再次运行
更新:我的配置文件中有这个
1 2 | $ git config alias.unstage reset HEAD |
我通常用来拆东西。
您已经进行了删除操作,因此需要执行以下操作:
1 | git checkout HEAD cc.properties store/README store/cc.properties |
就这么做吧。
要一次恢复所有未分页的删除,请自动恢复,而不指定每个路径:
1 | git ls-files -d | xargs git checkout -- |
要一次恢复所有分段删除,请自动恢复,而不指定每个路径:
1 | git status | grep 'deleted:' | awk '{print $2}' | xargs git checkout -- |
因为您正在执行
你可以用
这样做可能会删除所有最新的修改并取消对修改的标记,例如,您可能会丢失工作。这可能是你想要的,但请查看文档以确保。
如果你用过
1 | git rm filename |
然后删除一个文件
1 | git checkout path/to/filename |
不起作用,所以在这种情况下
1 | git checkout HEAD^ path/to/filename |
应该工作
这是在Mac上帮助我的命令。我尝试了其他一些解决方案,但它们不适用于我。
OSX Mavericks上的Git版本
1 2 | mac-pro:main chris$ git version git version 1.8.5.2 (Apple Git-48) |
命令
1 | git checkout HEAD -- path/to/file/file.cc |
1 | git checkout HEAD -- client/src/pp_web/index.cljs |
如果要一次还原所有文件
记住使用句点,因为它告诉Git获取所有文件。
此命令将重置头部并取消所有更改:
1 | $ git reset HEAD . |
然后运行此命令还原所有文件:
1 | $ git checkout . |
然后做一个Git状态,你会得到:
1 2 3 | $ git status On branch master Your branch is up-to-date with 'origin/master'. |
使用
1 | git checkout $(git ls-files -d) |
看看如何只还原git签出时修改过的文件?
你能看看这个吗
这适用于你用过的箱子
1 | git checkout -- . |
在你做出决定之前。
您还可能希望删除尚未创建的已创建文件。你不想要它们。用:
1 | git reset -- . |
在查找有关如何取消删除从其他分支合并后在我的工作目录中删除的文件的答案时找到了此文章。合并后尚未提交。因为它是一个正在进行的合并,所以我不能用以下方法将其添加回去:
1 | $ git reset <commitid#-where-file.cpp-existed> file.cpp |
除了重置之外,我还必须执行另一个步骤,以使文件返回:
1 | $ git checkout -- file.cpp |
如果您没有提交任何更改,您所要做的就是保存这些更改,然后您将返回到上一次工作提交。
1 2 3 | git stash git stash clear git clean |
如果要查找已删除的目录。
1 | git checkout ./pathToDir/* |
对我来说起作用的是
例如
(在希望文件进入的分支中执行)
执行该命令后,还原的文件将存在于原始位置(需要将其放入)
您可以重置工作区(并恢复已删除的文件)
1 | git checkout ./* |
注意:先做你想保留的工作。
如果已安装ToLoiseGit,则只需选择父文件夹弹出菜单的"还原…"菜单项。
我也有同样的问题,但是上面的所有解决方案都不适合我。我最后做的是:-创建同名的空文件-将此文件与其本地历史记录进行比较-将历史记录复制到空文件中。
1.使用以下方法查找要还原的特定提交:
1 2 | git log This command will give you a list of commits done by you . |
2.使用以下方法恢复提交:
1 | git revert <commit id> |
现在,您的本地分支将拥有所有文件,尤其是