Git отменить попытку слияния
У меня есть рабочий каталог (#1), который имеет каталог поставщика(#2) в нем. Есть одна зависимость, которую я хотел вытащить вручную без composer (php-версия npm/gem). Я работал в #1, не сохранил/внес изменения, когда я решил, что хочу обновить библиотеку в #2. Я перешел к vendor / myname и сделал git pull repository.
к сожалению, он начал тянуть и сливаться с #1, вместо того, чтобы создавать новый каталог в папке поставщика.
Теперь Я есть:
- #1 папка с моими изменениями
- #1 папка с файлами, которые я не хочу из неправильного репозитория
- #1 слияние конфликтов, таких как composer.джсон, Readme.md... (общие файлы)
Я хочу "отменить" этот последний git pull без потери каких-либо изменений, которые я сделал в папке #1. Как я могу это сделать?
3 ответа:
Современный Git:
git merge --abort
старше:
git reset --merge
олд-скул (предупреждение: отбросит все ваши локальные изменения):
git reset --hard
но на самом деле, стоит заметить, что
git merge --abort
только эквивалентноgit reset --merge
учитывая, чтоMERGE_HEAD
присутствует. Это можно прочитать в команде git help for 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
предложит .посмотреть commit b0a61ab (21 июля 2016) by Matthieu Moy (
moy
).
(слитый Junio C Hamano--gitster
-- на commit 5a2f4d3, 03 авг 2016)
status
: предлагаю 'git merge --abort
' при необходимостимы уже рекомендуем '
git rebase --abort
' во время конфликтные перебазироваться.
Аналогично, предложите'git merge --abort
в ходе конфликта на 'git merge
'.