Anzitutto apriamo questo articolo precisando che modificare i commit passati è un’operazione sulla commit history di un repository e tale operazione può essere rischiosa. Questa operazione non va presa troppo alla leggera, infatti durante questo processo di modifica si creeranno nuovi commit objects, i quali possono diventare un serio problema per i nostri collaboratori se hanno già basato il loro lavoro su alcuni dei commit originali che saranno oggetto di modifica.
In conclusione, pensa due volte prima di riscrivere la commit history del tuo repository.
Modificare l'autore dell'ultimo commit
Nel caso in cui si voglia modificare l’autore dell’ultimo commit, Git offre una strada molto facile per farlo.
git commit --amend --author="Mario Rossi "
Modificare l'autore usando Interactive Rebase
Interactive Rebase è tra i tools di Git quello che può essere considerato un vero coltellino svizzero che permette di agire su quasi ogni cosa. Essendo però uno strumento tanto potente, significa anche che ci si può letteralmente sparare nei piedi se lo si utilizza male. Prima di eseguire operazioni di cui non si è sicuri è meglio documentarsi a questo link.
Il primo passo è identificare l’ultimo commit che consideriamo valido ed invocare il comando di rebase indicandone l’hash.
git rebase -i -p 0ad14fa5
Si aprirà un editor dove possiamo indicare tutti i commit di cui vogliamo cambiare i dettagli. Per fare ciò anteponiamo la keyword “edit” prima dell’hash.
Git a questo punto ci guiderà attraverso ogni commit, dandoci la possibilità di cambiarne i dettagli.
Stopped at 5772b4bf2... Add images to about page
You can amend the commit now, with
git commit --amend
Once you are satisfied with your changes, run
git rebase --continue
Il lavoro ora consiste nel correggere le informazioni dell’autore iterando per ogni commit che abbiamo precedentemente marcato con la keyword “edit”.
git commit --amend --author="Mario Rossi " --no-edit
git rebase --continue