Mi capita spesso di impostare un repository git su un computer che non uso abitualmente; dopotutto il bello di git è proprio questo essere distribuito. Una delle cose che però scordo sempre, nella fretta, è di impostare lo username e l'e-mail che apparirà nei commit. Siccome tipicamente lavoro "da solo" su un repository, faccio abbastanza presto a rinominare tutti i commit sbagliati: il comando filter-branch consente infatti di agire sui commit di un ramo di sviluppo. Nel mio caso tutto si riduce ad un semplice:
git filter-branch --commit-filter '
GIT_COMMITTER_NAME="Luca Ferrari";
GIT_AUTHOR_NAME="Luca Ferrari";
GIT_COMMITTER_EMAIL="email";
GIT_AUTHOR_EMAIL="email";
git commit-tree "$@";
' HEAD
GIT_COMMITTER_NAME="Luca Ferrari";
GIT_AUTHOR_NAME="Luca Ferrari";
GIT_COMMITTER_EMAIL="email";
GIT_AUTHOR_EMAIL="email";
git commit-tree "$@";
' HEAD
Il trucco ovviamente funziona per commit non ancora resi pubblici. Il comando filter-branch consente anche di individuare particolari commit (ad esempio solo quelli sbagliati invece che tutti) e quindi di agire solo su tali.