1652 votes

Changement de message de validation de git après push (étant donné que nul tiré de distance)

J’ai fait un git commit et poussoir subséquent. Je voudrais changer le message de validation. Si je comprends bien, ce n’est pas conseillé parce que quelqu'un pourrait avoir tiré depuis le référentiel distant avant de faire ces changements. Que se passe-t-il si je sais que personne n’a tiré ?

Y a-t-il un moyen de faire cela ?

S’il vous plaît aviser, toute aide est appréciée.

Merci, kitenge

2009voto

Dietrich Epp Points 72865

Si c'est la plus récente engager, vous pouvez simplement faire ceci:

git commit --amend

Cela amène l'éditeur, avec le dernier message de commit et vous permet de modifier le message. (Vous pouvez utiliser -m si vous souhaitez effacer les anciens messages et utiliser un nouveau.)

Et puis quand vous appuyez, faites ceci:

git push --force <repository> <branch>

Être prudent lors de l'utilisation d' push --force. Si quelqu'un d'autre l'a poussé les changements à la même branche, les changements seront détruits.

Toute personne qui a déjà tiré de ne pas avoir de message d'erreur, et ils auront besoin d'une mise à jour (en supposant qu'ils ne sont pas tous les changements eux-mêmes), en faisant quelque chose comme ceci:

git fetch origin
git reset --hard origin/master # Loses local commits

Être prudent lors de l'utilisation d' reset --hard. Si vous avez des modifications à la direction générale, ces modifications seront détruits.

Une remarque à propos de la modification de l'histoire

Les données détruites est vraiment juste l'ancien message de commit, mais --force ne le savent pas, et sera heureux de supprimer d'autres données. Alors, pensez à --force "je veux détruire les données, et je sais pour sûr que les données sont détruites." Mais lors de la destruction de données commis, vous pouvez souvent de récupérer les vieux s'engage à partir de la reflog-les données sont en fait des orphelins , au lieu de détruit (bien que les orphelins commits sont régulièrement supprimés).

Si vous ne pensez pas que vous êtes de détruire les données, puis rester loin de l' --force... de mauvaises choses peuvent se produire.

797voto

Manish Shrivastava Points 4380

Dis le :

 git commit --amend -m "New commit message"
 

et alors

 git push --force origin <BRANCH-NAME>
 

-

et c'est tout!

À votre santé!!

22voto

Steve Benner Points 540

Il convient de noter que si vous utilisez push --force avec plusieurs refs, ils vont TOUS être modifiés en conséquence. Assurez-vous de payer attention à l'endroit où votre repo git est configuré pour le pousser à. Heureusement, il existe une façon de protéger le processus légèrement, en spécifiant une seule branche de mise à jour. Lire à partir de la git homme pages:

Notez que --force s'applique à tous les arbitres qui sont poussés, par conséquent, avec avec push.défaut de contrepartie ou avec plusieurs pousser destinations configurées avec la télécommande.*.poussez peut remplacer les références à d'autres que la branche courante (y compris les refs qui sont strictement derrière leur homologue distant). À force de pousser pour une seule branche, l'utilisation a + en face de la refspec de pousser (e.g git push origin +master à force une poussée de la branche master).

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