如何取消删除以前在git历史记录中删除的文件?

时间:2010-06-30 14:49:55

标签: git repository history undelete

在另一个问题上使用Chris's answer我可以将快照历史记录添加到我的git存储库中。由于其中一个文件不是我的历史记录的一部分,而只是在快照中,因此第一个原始提交现在也包含此文件的删除。我该怎么撤消?

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

2 个答案:

答案 0 :(得分:68)

git checkout <commit> <filename>

答案 1 :(得分:50)

我明白了:

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