Le gestionnaire de code source git a été lancé en 2005. Depuis sa création, de nombreuses extensions et patchs ont été écrits. Du coup, je tombe régulièrement sur des informations contradictoires lors que je cherche comment faire tel ou tel truc dans Google. Quand j'arrive enfin à faire ce que je veux, je le note pour pas l'oublier :-)

Aujourd'hui, les astuces permettent de modifier les commits précédents. Je m'en suis servi sur un dépôt git-svn pour corriger des soucis avant d'envoyer (git svn dcommit) mes modifications upstream. Attention à ne pas modifier des commits déjà envoyés upstream par contre, sous peine d'avoir de gros conflits.

Supprimer un commit git

Si on réalise après coup qu'un commit est foireux, il peut être utile de le supprimer pour éviter de l'envoyer upstream. Dans mon cas, je devais supprimer un commit et non pas l'annuler (revert) car un script svn en pré-commit me bloquait.

La commande pour supprimer le commit numéro XXX :

git rebase --onto XXX~1 XXX

Rééditer le changelog du dernier commit git

Ça arrive de faire une faute de typo, mais de s'en rendre compte qu'après avoir fait le commit. J'ai toujours voulu pouvoir éditer un changelog à posteriori. C'est possible avec svn (sur le serveur), mais c'est très compliqué. Avec git, on peut facilement éditer un changelog, mais uniquement celui du dernier commit.

La commande pour éditer le changelog du dernier commit :

git commit --amend

Il exite également « git commit -c XXX » et « git commit -C XXX » mais je n'ai pas réussi à m'en servir :-(