Я на ветке mybranch1
. mybranch2
от, mybranch1
и изменения были внесены в mybranch2
.
Затем, пока mybranch1
я включен, git merge --no-commit mybranch2
это показывает, что при слиянии возникли конфликты.
Теперь я хочу отменить все ( merge
команду), чтобы mybranch1
вернуться к тому, что было раньше. Я понятия не имею, как мне поступить об этом.
git
git-merge
git-merge-conflict
Anshul
источник
источник
Ответы:
Последний Git:
Это попытается восстановить вашу рабочую копию до того состояния, в котором она находилась до слияния. Это означает, что он должен восстановить любые незафиксированные изменения до слияния, хотя он не всегда может делать это надежно. Как правило, вы не должны сливаться с незафиксированными изменениями в любом случае.
До версии 1.7.4:
Это более старый синтаксис, но он делает то же самое, что и выше.
До версии 1.6.2:
который удаляет все незафиксированные изменения, включая незафиксированное слияние. Иногда такое поведение полезно даже в более новых версиях Git, которые поддерживают вышеуказанные команды.
источник
git reset --merge
даже в более свежих версиях. У меня былаgit merge --abort
ошибка (без изменений), где онgit reset --merge
успешно (и делает правильно) в git 2.2.1.git merge --abort
,git reset --merge
когда у меня возникнут конфликты с автоматическим всплытием из моего тайника.git merge --abort
работает для меня, однако я оказался в ситуации, когда я выписался в отключенном состоянии HEAD, и один из моих файлов имел «оба измененных» состояния. Я хотел отбросить все и вернуться в ветку, я должен былgit reset --hard
,git merge --abort
сказал мне, что не было слияния, чтобы прервать (MERGE_HEAD отсутствует).git merge --abort
не может вернуть ваше предыдущее состояние, и в этом случае «старый синтаксис»git reset --hard
делает свое дело .На самом деле, стоит отметить, что
git merge --abort
это эквивалентно только тому,git reset --merge
чтоMERGE_HEAD
присутствует. Это можно прочитать в справке git для команды слияния.После неудачного слияния, когда его нет
MERGE_HEAD
, неудачное слияние можно отменить,git reset --merge
но не обязательно с помощьюgit merge --abort
, поэтому они не только имеют старый и новый синтаксис для одной и той же вещи .Лично я нахожу
git reset --merge
гораздо более полезным в повседневной работе.источник
git stash apply
неправильной ветви, иgit merge --abort
ничего не сделало (нетMERGE_HEAD
), покаgit reset --merge
сделал трюк.git merge --abort
это новая команда,git reset --merge
и я столкнулся с той же проблемой, что и @geomaster, это было очень полезно, спасибо!Предполагая, что вы используете последнюю версию Git,
источник
Есть две вещи, которые вы можете сделать сначала отменить слияние по команде
или
вы можете временно перейти в предыдущее состояние коммита
источник
Sourcetree
Если вы не зафиксировали свое слияние, просто дважды щелкните по другой ветке (= checkout), и когда sourcetree спросит вас об отмене всех изменений, тогда согласитесь
источник