Откатить ГИТ слияния
develop branch
--> dashboard (working branch)
Я использую git merge --no-ff develop чтобы объединить любые изменения вверх по течению в dashboard
git log:
commit 88113a64a21bf8a51409ee2a1321442fd08db705
Merge: 981bc20 888a557
Author: XXXX <>
Date: Mon Jul 30 08:16:46 2012 -0500
Merge branch 'develop' into dashboard
commit 888a5572428a372f15a52106b8d74ff910493f01
Author: root <[email protected]>
Date: Sun Jul 29 10:49:21 2012 -0500
fixed end date edit display to have leading 0
commit 167ad941726c876349bfa445873bdcd475eb8cd8
Author: XXXX <>
Date: Sun Jul 29 09:13:24 2012 -0500
в слиянии было около 50 + коммитов, и мне интересно, как просто вернуть слияние, чтобы панель мониторинга вернулась в состояние pre-merge
вторая часть этого, если я не слияние с --no-ff, Я не получаю фиксацию'объединить ветку "разработка" в dashboard' .. Как бы я откатил это слияние обратно?
4 ответов:
возврат фиксации слияния был исчерпывающе описан в другие вопросы. когда вы делаете быстрое слияние, второй, который вы описываете, вы можете использовать
git resetчтобы вернуться в предыдущее состояние:git reset --hard <commit_before_merge>вы можете найти
<commit_before_merge>Сgit reflog,git log, или, если вы чувствуете Мокси (и не сделали ничего другого):git reset --hard HEAD@{1}
отсюда:
http://www.christianengvall.se/undo-pushed-merge-git/
git revert -m 1 <merge commit hash>git revert добавляет новую фиксацию, которая откатывает указанную фиксацию.
использование -m 1 говорит ему, что это слияние, и мы хотим вернуться к родительской фиксации в главной ветви. Вы бы использовали-m 2, чтобы указать ветку разработки.
просто сбросьте фиксацию слияния с
git reset --hard HEAD^.Если вы используете --no-ff git всегда создает слияние, даже если вы ничего не совершали между ними. Без --no-ff git просто сделает быструю перемотку вперед, что означает, что ваша голова ветвей будет установлена на голову объединенной ветви. Чтобы решить эту проблему, найдите commit-id, к которому вы хотите вернуться, и
git reset --hard $COMMITID.
git reset -m 1 88113a64a21bf8a51409ee2a1321442fd08db705но может иметь неожиданные побочные эффекты. См. параметр -- mainline parent-number вgit-scm.com/docs/git-revert
возможно, грубым, но эффективным способом было бы проверить левый родитель этой фиксации, сделать копию всех файлов, снова проверить голову и заменить все содержимое старыми файлами. Затем git расскажет вам, что откатывается, и вы создадите свой собственный revert commit :)!
Comments