web-dev-qa-db-fra.com

Comment annuler une fusion sur Bitbucket?

J'ai créé une fusion (dans la branche "maître") qui se trouve maintenant sur un dépôt Bitbucket. Longue histoire courte: je dois annuler cette fusion.

Je sais que vous pouvez le faire sur le site Github lui-même, mais Bitbucket n’a pas cette fonctionnalité. Je ne comprends pas comment faire cela avec Git sans causer de dégâts.

32
James

Vous devez d'abord cloner le référentiel sur votre système local (vous pouvez obtenir l'URL du référentiel au format SSH ou HTTPS à partir de la page "Présentation" du référentiel dans Bitbucket):

git clone [email protected]:my/repo.git
-or-
git clone https://[email protected]/my/repo.git

git checkout master

.. puis annulez le commit le plus récent. Commencez par lister les commits disponibles avec:

git log

.. puis sélectionnez le commit avant la fusion:

git reset --hard 72ead1c4c1778c23c277c4f15bbb68f3bb205f54

.. où le hachage est le hachage du commit avant la fusion (à partir du journal). Enfin, forcez les modifications dans Bitbucket, écrasez l’historique.

git Push -f

Naturellement, si le référentiel est partagé et que ses autres utilisateurs ont extrait votre plus récent commit et l'ont construit au-dessus, ils ne seront pas contents. Dans ce cas, assurez-vous d'informer tout le monde de ce que vous faites.

revert, comme mentionné dans les autres réponses, est une autre option; il conserve le commit que vous avez fait, mais modifie davantage le référentiel (avec un nouveau commit) de manière à annuler les modifications que vous avez apportées. Que vous souhaitiez utiliser revert dépend de si vous voulez que les informations de votre commit restent ou non dans l'historique du repo.

Pour plus de détails sur l'annulation des modifications dans git, voir un bonne page de tutoriel d'Atlassian .

59
Ville

Une fonctionnalité "Demande d'extraction inversée" a été mise en œuvre dans Bitbucket en 2017.

Pour annuler une demande d'extraction:

  1. À partir de la demande d'extraction, cliquez sur le bouton Revenir en haut à droite. (Facultatif) Dans la boîte de dialogue Demande d'annulation d'extraction, modifiez le nom de la branche que vous souhaitez créer.
  2. Cliquez sur le bouton Revenir. Une fois que vous cliquez sur Rétablir, Bitbucket crée la nouvelle branche. Même si vous annulez la demande d'extraction, la branche de retour reste dans le référentiel.
  3. La page Créer une demande d'extraction s'ouvre avec la branche de restauration en tant que source. Après avoir ajouté vos réviseurs et apporté des modifications supplémentaires, cliquez sur Créer.

Source: la documentation .

9
BrunoFacca

Je suggérerais plutôt de faire un revert, puisque vous annulez un dépôt public.

git revert HEAD
git Push -f Origin
6
Uzbekjon

pour annuler les modifications d’un commit: git revert <commit id>

4
endikap100