web-dev-qa-db-fra.com

Git reverse commet une fusion poussée dans SourceTree

J'ai accidentellement fusionné une branche et j'avais coché la case "Transférer immédiatement les modifications". Malheureusement, j'ai fait une erreur de fusion et maintenant je ne veux pas faire de commit inversé pour la supprimer. Cependant, chaque fois que je le fais dans SourceTree, j'obtiens l'erreur suivante:

error: Commit X est une fusion mais aucune option -m n'a été donnée. fatal: revert failed

Y a-t-il un moyen de faire cela ou dois-je utiliser le terminal pour cela? Je lisais à ce sujet mais je ne trouvais pas de solution à ce cas particulier.

7
Ogglas

Vous pouvez trouver des réponses sur la façon de ramener votre branche (ou votre maître) à l'état d'avant sa fusion (retour rapide). Si tout va bien pour que tout retourne dans cet état, c'est bon. Mais en général, je dois inverser la fusion d’une branche d’éléments tout en préservant les commits effectués après cette fusion.

Il suffit de faire:

git revert -m 1 [copy-paste-the-id-of-the-merge-commit-here]

si nécessaire, éditez les conflits et commettez.

edit: et oui, SourceTree devrait transmettre les arguments -m 1 si vous annulez une validation de fusion.

3
edgraaff

Vous voudrez peut-être cliquer avec le bouton droit sur le dernier commit et cliquer sur:

"Réinitialiser la branche actuelle à ce commit"

 enter image description here

et sélectionnez le mode Difficile lorsque vous y êtes invité.

 enter image description here

Remarque importante: Tous les changements de copie de travail seront annulés en cliquant sur le mode Difficile.

J'espère que cela t'aides!

À votre santé!

2
Cyan Baltazar