My local commits have wrong email so I used the following command to reset it. However, it only reset the latest local commit. How to reset the earlier ones?
git
Do (you may need to increase/decrease 20 according to how far back the commit you want to edit is):
git rebase -i HEAD~20
and, for the commit you want to amend, replace pick
with edit
(in the interactive window). Save, and close.
Then, do git commit --amend
, make your change, and let the rebase continue.
Assuming you have a linear history, you can reset the authorship of all commits with
git rebase -i --exec 'git commit --amend --reset-author --no-edit' --root
If only a subset of commits is affected, which still must be all in a linear history, replace --root
with the commit ID before the first one of yours.