If I run an interactive rebase on a branch without the --root flag, git does not modify (change the hash, etc.) any initial commits that are being "pick"ed in the same order. However, if I use --root, every single commit is modified. Here's an example: * Old (immediately after running "git rebase -i --root"): pick d89 root pick 3e7 bar pick 57e baz * New (after editing the "git-rebase-todo" file): pick d89 root pick 57e baz pick 3e7 bar After this, AFAIK, only baz and bar's hashes should change. However, the root commit's hash (d89) also changes. A simpler way to reproduce this is to just run `git rebase -i --root` and rebase without changing anything. Every commit will be modified. Is this supposed to happen?