899 votes

Comment modifier un commit sans changer le message de commit (en réutilisant le précédent) ?

Existe-t-il un moyen de modifier un commit sans vi (ou votre $EDITOR ) s'affichant avec l'option de modifier votre message de validation, mais en réutilisant simplement le message précédent ?

10 votes

Je déclasserais ma propre question après avoir appris à la dure les méfaits de la modification.

58 votes

Tant que vous respectez certaines règles (comme ne pas modifier quelque chose qui a déjà été poussé), il n'y a aucune raison pour que la modification soit une mauvaise chose.

0 votes

Bon article sur la modification : Tu ne mentiras pas

1403voto

Shaggie Points 1656

Depuis la version 1.7.9 de git, vous pouvez également utiliser git commit --amend --no-edit pour obtenir votre résultat.

Notez que cela n'inclura pas les métadonnées de l'autre livraison, comme l'horodatage, qui peut ou non être important pour vous.

57 votes

Vous pouvez également faciliter l'utilisation par défaut de l'option --no-edit en ajoutant un alias : "amend = commit -a --amend --no-edit".

10 votes

@Jherico Je suggère de supprimer -a. Faites des commits atomiques, c'est beaucoup plus facile à réviser ou à rebaser :)

4 votes

Pourquoi je n'utilise pas --no-edit depuis une dizaine d'années ?!?! Merci :-)

150voto

Andy Ross Points 7024

git commit -C HEAD --amend fera ce que vous voulez. Le site -C prend les métadonnées d'un autre commit.

20 votes

Juste pour ajouter à la réponse d'Andy. Si c'est quelque chose que vous faites fréquemment, vous pouvez créer un alias en utilisant la commande suivante git config --global alias.amend 'commit --amend -C HEAD' . Vous pouvez alors utiliser git amend comme un raccourci.

11 votes

Allez les gars, ne soyez pas paresseux, mettez à jour git et utilisez la commande intégrée que Shaggle suggère ! Plus un pour l'option -C cependant.

5 votes

Non seulement l'horodatage, mais aussi l'information sur l'auteur !

86voto

galva Points 60

Une autre possibilité (stupide) consiste à git commit --amend <<< :wq si vous avez vi(m) comme $EDITOR .

40voto

Rambatino Points 984

Pour approfondir la réponse acceptée, vous pouvez également le faire :

git commit --amend --no-edit -a

pour ajouter les fichiers actuellement modifiés.

12voto

piouson Points 650

Pour plus de clarté, vous devez effectuer des modifications avec les éléments suivants git add puis modifier la dernière livraison :

git add /path/to/modified/files
git commit --amend --no-edit

Ceci est particulièrement utile si vous avez oublié d'ajouter certains changements dans le dernier commit ou lorsque vous voulez ajouter plus de changements sans créer de nouveaux commits en réutilisant le dernier commit.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X