4

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 commit --amend --reset-author --no-edit
ca9163d9
  • 24,345
  • 44
  • 175
  • 352
  • Maybe just try to checkout earlier (or any other that you want to amend) commit and then execute this. – ulou Oct 14 '20 at 16:54

2 Answers2

7

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.

j6t
  • 6,675
  • 1
  • 9
  • 25
2

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.

ignoring_gravity
  • 3,886
  • 3
  • 24
  • 40