代码之家  ›  专栏  ›  技术社区  ›  Tobias Kienzler

如何恢复以前在Git历史记录中删除的文件?

  •  42
  • Tobias Kienzler  · 技术社区  · 14 年前

    使用 Chris's answer 在另一个问题上,我可以将快照历史记录预先发送到我的Git存储库。由于其中一个文件不是我的历史记录的一部分,而是快照中的一部分,所以第一个原始提交现在还包含对该文件的删除。我怎样才能撤销?

    起初我以为这和 How do I remove sensitive files from git’s history ,但实际上我不想在历史中插入文件,只想从历史中删除删除。

    2 回复  |  直到 12 年前
        1
  •  68
  •   kubi    14 年前
    git checkout <commit> <filename>
    
        2
  •  48
  •   Community Ian Goodfellow    7 年前

    我得到了它:

    git tag originalHead # just in case
    git rebase -i <id of the parent of the commit that deleted the file>
    # change pick to edit for that commit
    git checkout <id of the previous commit> <filename> # thanks for reminding, kubi
    git commit --amend
    git rebase --continue
    git tag -d originalHead
    

    编辑 很遗憾,这会将所有标记保留在旧的时间线上,请参见 here