【问题标题】:recovering deleted files git after revert恢复后恢复已删除的文件git
【发布时间】:2020-07-09 20:07:01
【问题描述】:

我有一个新的存储库。我通过

添加了一些文件 (a,b,c)
git add .
git commit -m "x"

我意识到文件 c 是不必要的,所以我通过

查找最后一次提交
git log

我手头有提交 id

git revert commit-id

它开始删除所有文件 删除文件 a b c

如何恢复它们?我查看了日志,只有原始提交 x 在那里。

我试过了

git checkout HEAD^^ -- .

根据How do I "un-revert" a reverted Git commit?

但我得到“无效的参考 HEAD^^”

有什么想法吗?

【问题讨论】:

  • 如果您执行git reflog,您会看到添加文件的提交吗?
  • @simon-pearson 是的,我看到了提交 (HEAD->MASTER) HEAD@{0}: (initial): x

标签: git git-revert recover


【解决方案1】:
  1. 通过执行git reflog 获取您在其中添加文件的初始提交的提交哈希(这实质上是您分支的所有最近 HEAD 的日志 - 对于此类场景非常有用)。
  2. 如果您想永久返回此提交并完全“撤消”您的还原,请执行git reset --hard <commit-id> 将哈希替换为您添加文件的初始提交的哈希。如果您想暂时返回此提交,请发送git checkout <commit-id>

进一步阅读git reflog: http://gitready.com/intermediate/2009/02/09/reflog-your-safety-net.html

【讨论】:

  • 呸!文件在那里
【解决方案2】:

你试过了吗

// It will reset your commit back to previous if its 2 commits back then use head~2 etc.
git reset head~1

【讨论】:

  • 我得到了模棱两可的参数头~工作树中的1个未知修订或路径。日志中只有 1 次提交。
猜你喜欢
  • 2014-02-03
  • 2017-01-20
  • 2017-05-10
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-11
相关资源
最近更新 更多