Git отменить попытку слияния

92

У меня есть рабочий каталог (# 1), в котором есть каталог поставщиков (# 2). Есть одна зависимость, которую я хотел вытащить вручную без композитора (php-версия npm / gem). Я работал в №1, не сохранял / не фиксировал изменения, когда решил, что хочу обновить библиотеку в №2. Я перешел к vendor / myname и сделал репозиторий git pull.

К сожалению, он начал вытягивать и сливаться с №1 вместо того, чтобы создавать новый каталог в папке поставщика.

Теперь у меня есть:

  • # 1 папка с моими изменениями
  • # 1 папка с файлами, которые мне не нужны, из неправильного репозитория
  • # 1 конфликты слияния, такие как composer.json, Readme.md ... (общие файлы)

Я хочу «отменить» этот последний git pull без потери каких-либо изменений, внесенных в папку №1. Как я могу это сделать?

ewooycom
источник
Git предотвращает вытягивание или слияние, если есть незафиксированные изменения, вы уверены, что это произошло?
CharlesB
1
@CharlesB Объединение прервано, проекты не объединяются. Я ничего не знаю о предотвращении git перед вытягиванием ...
ewooycom

Ответы:

172

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

арагаер
источник
6
В более старых версиях git: git reset --merge
razz0 08
Это работает, но ничего вам не сообщает. Сделайте a git statusдля
подтверждения.-
18

Современный Git:

git merge --abort

Старший:

git reset --merge

Старая школа (предупреждение: все ваши локальные изменения будут отменены):

git reset --hard

Но на самом деле стоит заметить, что git merge --abortэто всего лишь эквивалент того, git reset --mergeчто MERGE_HEADприсутствует. Это можно прочитать в справке git для команды слияния.

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что в повседневной работе гораздо больше полезного.

Мартин Дж.
источник
2

С Git 2.10 (3 квартал 2016 г.) вы будете знать, что делать, потому что вам git statusбудет предложен git merge --abortвариант.

См. Commit b0a61ab (21 июля 2016 г.) от Matthieu Moy ( moy) .
(Объединено Junio ​​C Hamano - gitster- в коммите 5a2f4d3 , 3 августа 2016 г.)

status: предлагать ' git merge --abort' когда необходимо

Мы уже предлагаем ' git rebase --abort' во время конфликтной перезагрузки.
Точно так же предложите « git merge --abortво время разрешения конфликта включить git merge».

VonC
источник