web-dev-qa-db-fra.com

Comment annuler une fusion Git?

J'ai accidentellement fait un git pull Origin master de dev, et le maître a été fusionné dans dev. Est-il possible de décomposer?

J'ai déjà vu différentes solutions, j'ai essayé celle-ci de dev et master: git revert -m 1 <commit> (une fois chacun) Mais j'ai compris: tout est à jour, à chaque fois

Je veux annuler le maître de fusion dans dev: https://github.com/iliassk/PED_MyTodo/commits/dev commit: e382550

57
redAce

Vous pouvez réinitialiser votre branche à l'état dans lequel elle se trouvait juste avant la fusion si vous trouvez le commit sur lequel elle était alors.

Une solution consiste à utiliser git reflog, Il listera toutes les têtes que vous avez eues. Je trouve que git reflog --relative-date Est très utile car il montre combien de temps il y a eu chaque changement.

Une fois que vous avez trouvé ce commit, faites un git reset --hard <commit id> Et votre branche sera comme avant.

Si vous avez SourceTree, vous pouvez y rechercher le <commit id> Si git reflog Est trop pénible.

104

Si vous n'avez pas commis la fusion, utilisez:

git merge --abort

38
Nikhil