My normal workflow is to create a .gitignore in my initial commit. When I later realize that I've forgotten something from that file I could of course just commit the changes, but I'd rather use "git rebase -i" in the normal way to make myself appear smarter than I am. Especially since this realization usually comes early on (and certainly before publishing). But rebase can't go all the way to a root ("fatal: Needed a single revision"). The best I've found is: 1) git checkout -b temp <root commit> 2) echo '*.tmp' >> .gitignore 3) git commit --amend .gitignore 4) git rebase --onto temp <root commit> master If there really is an asymmetry here and I haven't missed anything (a large assumption), then what's the best way to think about it? Is there a role for a default commit (e.g. the sha1 of "") here so that 'rebase -i' can update all commits and not just the ones with parents? Or should I just get used to it and move on? Thanks - Eric -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html