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 62

3 ответа:

git merge --abort может быть то, что вы ищете.

Современный 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'.