Search code examples
gitrepositoryhistoryundelete

How to undelete a file previously deleted in git's history?


Using Chris's answer on another question I could prepend a snapshot-history to my git repository. Since one of the files is not part of my history but only in the snapshots, the first original commit now also contains the deletion of this file. How can I undo that?

At first I thought this was the opposite of How do I remove sensitive files from git’s history, but actually I don't want to insert a file into history but just remove the deletion from history.


Solution

  • I got it:

    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
    

    edit unfortunately this will leave all tags at the old timeline, see here