gitgit-rewrite-history

Add a .gitignore file to every commit


I have a git repo that was converted from SVN. It lacks a .gitignore file.

Of course, I could just add one and commit it on main, but it would be better if it were present also on other branches and all the tags.

So I wonder if there is a good way to rewrite the entire history, adding a .gitignore to each and every commit?


Solution

  • Add the .gitignore file in a new commit, then perform an interactive rebase (git rebase -i --root) and place the commit as the very first. Then, rebase all other branches onto the branch (if you want to preserve any existing merge commits, use --rebase-merges when doing this).

    N.B. this implies rewriting git's history (which will result in new commit hashes).