【问题标题】:how do i recover deleted files from the command git rm -r * with files that were commited but wasnt pushed [duplicate]如何从命令 git rm -r * 中恢复已删除的文件,其中包含已提交但未推送的文件[重复]
【发布时间】:2020-04-20 16:24:20
【问题描述】:

我不小心从他在 github 的存储库中删除了文件(我对一些文件进行了很多更改,因为我还没有推送它们),并且在我远程回到 github 中的同一个存储库后 -iv'我再次添加了文件,我对文件进行了提交,当我尝试推送时,我得到了这个错误 - “致命:你目前不在分支上。” 我试图“修复”这种情况,并发出命令 - “git rm -r *” 我所有的文件内容都从我的电脑中删除了。 我真的不知道现在该做什么以及如何恢复这些文件 (只是提醒一下 - github 上的当前分支没有更新到我上次提交 - 因为没有进行推送)

【问题讨论】:

  • 在执行git commitgit push 时是否收到“致命:您当前不在分支上”错误?我想您在尝试提交时得到了它,因此实际上并没有提交您的更改。
  • 另外,您希望通过git rm -r * 实现什么目标?
  • 那是我尝试做 git push 的时候。
  • @GabrielStaples 我在网上搜索了答案,不知何故我看到了这个解决方案,只是没有考虑后果。

标签: git github git-rm


【解决方案1】:

您可以通过git checkout -- filepath 找回它们

git checkout -- file1 file2

等等。它们将像在 HEAD 上一样被签出。

【讨论】:

  • 即使我收到了这些消息 - “HEAD 与 'f17603c' 分离”?
  • 没关系。分支只是指向修订的指针。 HEAD 只是一个(特殊)指向修订的指针。你得到了关于不在分支上的错误,因为你在分离的 HEAD 上,这就是为什么 git 不知道你想要推送什么。
  • 这是我执行 rm 命令后发生的事情 - PS C:\wamp64\www\Dashboard-api\lucy-dashboard-server> git commit -m "your comment" [分离 HEAD 27cdf97]您的评论 64 个文件已更改,5703 个删除(-)删除模式 100644 .gitignore 删除模式 100644 Procfile 等等对该文件中的所有其余文件。
  • 我在尝试使用您的命令恢复文件时遇到此错误 - “错误:pathspec 'controllers/contact.js' 与 git 已知的任何文件都不匹配”
  • 哦...当然,删除已经提交。试试git checkout HEAD~ -- file1 file2
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-09-08
  • 2020-07-09
  • 1970-01-01
  • 2014-12-30
  • 2014-02-03
  • 2011-06-28
相关资源
最近更新 更多