Git скасувати спробу об’єднання


90

У мене є робочий каталог (# 1), в якому є каталог постачальників (# 2). Є одна залежність, яку я хотів отримати вручну без композитора (php-версія npm / gem). Я працював у №1, не зберігав / не вносив зміни, коли вирішив, що хочу оновити бібліотеку в №2. Я перейшов до постачальника / моє ім'я та зробив репозиторій git pull.

На жаль, він почав тягнутись і об'єднуватися в №1, замість того, щоб створювати новий каталог у папці постачальника.

Тепер у мене є:

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

Я хочу "скасувати" це останнє витягування git, не втрачаючи жодних змін, які я вніс до папки №1. Як я можу це зробити?


Git запобігає витягуванню або об'єднанню, якщо є незафіксовані зміни, ви впевнені, що саме це сталося?
CharlesB

1
@CharlesB Це перервало злиття, проекти не об’єднуються струменем. Я нічого не знаю про запобігання git, перш ніж тягнути ...
ewooycom

Відповіді:


170

git merge --abort може бути те, що ви шукаєте.


6
У старих версіях git: git reset
--merge

Це працює, але без користі нічого не говорить. Зробіть git statusдля підтвердження.
aliteralmind

17

Сучасний Git:

git merge --abort

Старіші:

git reset --merge

Олдскул (попередження: всі ваші місцеві зміни буде відхилено):

git reset --hard

Але насправді варто зауважити, що git merge --abortце лише еквівалентно git reset --mergeданому, який MERGE_HEADприсутній. Це можна прочитати в команді git help для злиття.

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 (Q3 2016) ви будете знати, що робити, тому що git statusзапропонуєте git merge --abortваріант.

Див. Коміт b0a61ab (21 липня 2016 р.) Маттьє Мой ( moy) .
(Об’єднано Junio ​​C Hamano - gitster- у комітеті 5a2f4d3 , 03 серпня 2016 р.)

status: запропонувати 'git merge --abort ', коли це доречно

Ми вже пропонуємо ' git rebase --abort' під час конфліктного перебазування.
Подібним чином пропонуйте ' git merge --abort' під час вирішення конфлікту увімкнено ' git merge'.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.