mercoledì 7 marzo 2012

git: rename a tappeto!

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

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.

Nessun commento: