Ответ 1
git merge --abort
может быть тем, что вы ищете.
У меня есть рабочий каталог (# 1), в котором есть каталог поставщика (# 2). Существует одна зависимость, которую я хотел вытащить вручную без компоновщика (версия PHP npm/gem). Я работал в # 1, не сохранял/менял изменения, когда решил, что хочу обновить библиотеку в # 2. Я перешел к поставщику /myname и сделал репозиторий git.
К сожалению, он начал тянуть и сливаться С# 1, вместо того, чтобы создавать новый каталог в папке поставщика.
Теперь у меня есть:
Я хочу "отменить" эту последнюю попытку git, не теряя никаких изменений, внесенных в папку # 1. Как я могу это сделать?
git merge --abort
может быть тем, что вы ищете.
Современный Git:
git merge --abort
Older:
git reset --merge
Старая школа (предупреждение: отменит все ваши локальные изменения):
git reset --hard
Но на самом деле стоит заметить, что git merge --abort
эквивалентен только git reset --merge
, если присутствует MERGE_HEAD
. Это можно прочитать в справке git для команды merge.
git merge --abort is equivalent to git reset --merge when MERGE_HEAD is present.
После неудачного слияния, когда нет MERGE_HEAD
, сбойное слияние может быть отменено с помощью git reset --merge
, но необязательно с git merge --abort
, , поэтому они не только старый и новый синтаксис для одной и той же вещи. Лично я нахожу git reset --merge
гораздо полезнее в повседневной работе.
С Git 2.10 (Q3 2016) вы узнаете, что делать, потому что git status
предложит параметр git merge --abort
.
Смотрите совершить b0a61ab (21 июля 2016 г.) Matthieu Moy (moy
).
(слияние Junio C Hamano - gitster
- в commit 5a2f4d3, 03 августа 2016 г.
status
: предложите 'git merge --abort
', если это необходимоМы уже предлагаем "
git rebase --abort
" во время конфликтной перестановки.
Аналогично, предположите "git merge --abort
" во время разрешения конфликта на "git merge
".