У меня есть рабочий каталог (# 1), в котором есть каталог поставщиков (# 2). Есть одна зависимость, которую я хотел вытащить вручную без композитора (php-версия npm / gem). Я работал в №1, не сохранял / не фиксировал изменения, когда решил, что хочу обновить библиотеку в №2. Я перешел к vendor / myname и сделал репозиторий git pull.
К сожалению, он начал вытягивать и сливаться с №1 вместо того, чтобы создавать новый каталог в папке поставщика.
Теперь у меня есть:
- # 1 папка с моими изменениями
- # 1 папка с файлами, которые мне не нужны, из неправильного репозитория
- # 1 конфликты слияния, такие как composer.json, Readme.md ... (общие файлы)
Я хочу «отменить» этот последний git pull без потери каких-либо изменений, внесенных в папку №1. Как я могу это сделать?
Ответы:
git merge --abort
может быть то, что вы ищете.источник
git status
дляСовременный Git:
Старший:
Старая школа (предупреждение: все ваши локальные изменения будут отменены):
Но на самом деле стоит заметить, что
git merge --abort
это всего лишь эквивалент того,git reset --merge
чтоMERGE_HEAD
присутствует. Это можно прочитать в справке git для команды слияния.После неудачного слияния, если его нет
MERGE_HEAD
, неудачное слияние можно отменить с помощью,git reset --merge
но не обязательно с помощьюgit merge --abort
, так что это не только старый и новый синтаксис для одного и того же . Лично я считаю,git reset --merge
что в повседневной работе гораздо больше полезного.источник
С Git 2.10 (3 квартал 2016 г.) вы будете знать, что делать, потому что вам
git status
будет предложенgit merge --abort
вариант.См. Commit b0a61ab (21 июля 2016 г.) от Matthieu Moy (
moy
) .(Объединено Junio C Hamano -
gitster
- в коммите 5a2f4d3 , 3 августа 2016 г.)источник