Як роз’єднати злиття Git?


82

Я випадково зробив a git pull origin masterз dev, і майстер злився у dev. Чи можна роз’єднатися?

Я вже бачив різні рішення, я пробував це як від розробника, так і від master: git revert -m 1 <commit>(раз по одному) Але я отримав: Все оновлене, кожен раз

Я хочу скасувати майстер злиття у dev: https://github.com/iliassk/PED_MyTodo/commits/dev commit: e382550

Відповіді:


142

Ви можете повернути свою гілку до стану, в якому вона перебувала безпосередньо перед злиттям, якщо ви знайшли коміт, у якому вона була тоді.

Один із способів - використовувати git reflog, він перелічить усі ГОЛОВИ, які у вас були. Я вважаю, що git reflog --relative-dateце дуже корисно, оскільки показує, як давно відбулася кожна зміна.

Як тільки ви виявите, що фіксуєте, просто виконайте a, git reset --hard <commit id>і ваша гілка буде такою, як була раніше.

Якщо у вас є SourceTree , ви можете заглянути <commit id>туди, якщо git reflogце занадто переважно.


Оскільки це дивне злиття: "pull origin master: Злиття, зроблене за" рекурсивною "стратегією", я трохи загубився. Чи можете ви порадити мені зробити скидання git --hard 757501b від майстра (хоча в історії змін немає). Або git reset --hard 14cbb9c з dev?
redAce

Це розробник, який вам потрібно виправити, так? Тож знайдіть коміт, зроблений на dev безпосередньо перед цим поганим злиттям, і зробіть скидання на dev до цього коміту.
Андреас Ведербранд

2
git revert -m 1 <commit id>
mpoletto

1
Найгірше зазначити, що якщо ви натиснули коміт злиття, то НЕ застосовуйте цей підхід, оскільки це зіпсує головну гілку, яка його витягла. Віддайте перевагу поверненню.
coffman21

1
Ви рятувальник життя :)
Pe Dro

58

Якщо ви не здійснили злиття, використовуйте:

git merge --abort


3
Дякую, це спрацювало, тому що я ще не здійснив злиття :)
Woppi

7
@Eightgate, він прямо зазначив: "Якщо ви не здійснили злиття, то використовуйте: git merge --abort"
Абхішек,

Це спрацює, якщо ви не зробили об’єднання, вітаємо.
daCoda

2

git revert -mдозволяє зняти об'єднання, зберігаючи історію як операцій об'єднання, так і скасування дій. Можливо, це добре для документування.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.