Будь ласка, введіть повідомлення про зобов’язання, щоб пояснити, чому це злиття необхідне, особливо якщо воно об'єднує оновлений верхній потік у галузь теми


515

Я використовую Git. Я здійснив витяг із віддаленого репо і отримав повідомлення про помилку:

Будь ласка, введіть повідомлення про зобов’язання, щоб пояснити, чому це злиття необхідне,
особливо якщо воно об'єднує оновлений верхній потік у галузь теми.

Я намагаюся набрати повідомлення і натиснути, Enterале нічого не відбувається.

Як я можу сказати Git / Terminal, що я закінчив набирати своє повідомлення?

Я використовую термінал в ОС X.


3
Схоже, ваш GIT налаштований на відкриття заздалегідь налаштованого шаблону, і цей шаблон відкривається через редактор за замовчуванням (vi / vim).
Шуня

Скасуйте це злиття та спробуйте використовувати git pull --rebase.
Анкуш Джайн

3
Форма мене "Shift ZZ" вирішує питання
papacico

Відповіді:


1188

Це не повідомлення про помилку Git, це редактор, оскільки git використовує ваш редактор за замовчуванням.

Щоб вирішити це:

  1. натисніть "i" (i для вставки)
  2. написати своє повідомлення про злиття
  3. натисніть "esc" (втеча)
  4. написати ": wq" (написати & вийти)
  5. потім натисніть клавішу Enter

7
Гаразд, але це за умови, що його редактор є viабо vim.
Габріеле Петронелла

106
це привіт складно
Коннор Ліч

92
Господь я ненавиджуVi
Sobiaholic

153
Якщо це допомагає комусь, то, як ви це пам’ятаєте, це те, що «i» - це «вставка», «esc» - це вихід вставки, а «: wq» - це просто «написати» та «вийти».
Джош Бім

83
Це також може бути ↑↑ ↓↓ ← → ← → BA
Веслі Сміт

39

Насправді це не помилка! Це означає, що ви повинні ввести якесь повідомлення, щоб позначити це злиття. Моя ОС - Ubuntu 14.04. Якщо ви використовуєте ту саму ОС, вам потрібно зробити це наступним чином:

  1. Введіть якесь повідомлення

  2. CtrlCO

  3. Введіть ім'я файлу (наприклад, "Merge_feature01") і натисніть Enter

  4. CtrlX для виходу

Тепер, якщо ви перейдете до .git і знайдете файл "Merge_feature01", це фактично журнал злиття.


6
Цікаво, як би хтось це знав? Це так дивно, як це працює. Дякуємо, що відповіли на це.
Адріан Карр

@ScottyBlades чому на цьому має бути? питання позначено тегом osx, і ця відповідь стосується того, як Ubuntu налаштовує зовсім іншу установку для Git (використовуючи nanoабо pico), що не застосовується до налаштування OS X. Це жодним чином не є узагальненим, а також не дає розуміння того, як це працює, звідси і коментар, залишений від @AdrianCarr. Зараз набагато кращі відповіді.
олігофрен

27

tl; dr Встановіть редактор на щось приємніше, як-от Sublime або Atom

Тут nice використовується в значенні редактора, який вам подобається, або знайти більш зручним для користувача .

Основна проблема полягає в тому, що Git за замовчуванням використовує редактор, який є надто неінтуїтивним для більшості людей: Vim. Тепер, не зрозумійте мене неправильно, я люблю Vim, і хоча ви могли відкласти трохи часу (як місяць), щоб навчитися Vim і спробувати зрозуміти, чому деякі люди вважають, що Vim - найбільший редактор, що існує, є швидший шлях виправлення цієї проблеми :-)

Виправлення полягає не в запам’ятовуванні загадкових команд , як у прийнятій відповіді, а в налаштуванні Git на використання редактора, який вам подобається і розуміє! Це дійсно так просто, як налаштувати будь-який із цих параметрів

  1. налаштування git config core.editor(для кожного проекту чи в усьому світі)
  2. VISUALабоEDITOR змінне оточення (це працює для інших програм, а)

Я висвітлю перший варіант для декількох популярних редакторів, але GitHub має чудову посібник з цього питання для багатьох редакторів .

Для використання Atom

Прямо від своїх документів введіть це у терміналі: git config --global core.editor "atom --wait"

Git зазвичай чекає завершення команди редактора, але оскільки Atom негайно переходить у фоновий процес, це не працюватиме, якщо ви не надасте --wait можливість.

Використання піднесеного тексту

З тих же причин, що і у випадку Atom, вам потрібен спеціальний прапор, щоб сигналізувати процесу, що він не повинен відкидати на другий план:

git config --global core.editor "subl -n -w"


Vim не займає місяць. це займає два дні, і ви ніколи не забудете, поки ви спочатку зберігаєте зручну шпаргалку, яка вам знадобиться час від часу.
user264431

22

Просто роби,

CTRL + X

CTRL + C

Він попросить вас зберегти файл, натисніть Y, тоді ви закінчите.


Це якщо ваш редактор за замовчуванням є "pico" або "nano". Якщо у вашому редакторі за замовчуванням vim, ви повинні використовувати вищевказані коментарі.
JacKeown

7

Тут його запитують у вас повідомлення, яке з'єднується з вашим об'єднанням для подальшого ознайомлення, чому ви зробили це злиття.

press "i"
on top above on #lines write your message
press "esc" button
write ":wq" (it will write in bottom automatically)
press enter

6

Натомість, ви можете git CtrlZта повторити спробу, але на цей раз додати "-m" з повідомленням у лапки після нього, тоді він буде виконувати без запиту на цій сторінці.


3
хай це, безумовно, вирішить проблему ОП. git commit -m 'I did blah'
Джеймс М. Лежав

У мене на терміналі Linux є git версії 1.7.11.4, і незважаючи на те, що я даю git commit -m "message" або git commit - message "message", все-таки редактор час від часу спливає, вимагаючи повідомлення. Хтось знає, чому перемикач "-m" ігнорується?
pglpm

4

Оскільки ваш локальний сховище заздалегідь на кілька комісій, git намагається об'єднати ваш пульт дистанційного керування з локальним репо-сервером. Це можна вирішити за допомогою злиття, але, у вашому випадку, можливо, ви шукаєте ребазу, тобто додайте свої зобов'язання до початку. Ви можете це зробити за допомогою

git rebase або git pull --rebase

Ось гарна стаття, яка пояснює різницю між git pull& git pull --rebase.

https://www.derekgourlay.com/blog/git-when-to-merge-vs-when-to-rebase/


0

Як додати повідомлення в термінал андроїд-студії за допомогою злиття. Це для користувачів Mac.

  • Крок перший - натисніть "i"
  • Крок другий - Введіть повідомлення після "#"
  • Крок третій - Натисніть "esc"
  • Крок четвертий - внизу напишіть ": wq"
  • Крок п'ятий - натисніть "Enter"

Ви все зробили зі своїм об'єднанням. Потім ви можете продовжувати працювати над тим, щоб перейти до місцевого місця після або створити нову гілку.


0

Це не повідомлення про помилку Git, це редактор git використовує ваш редактор за замовчуванням.

Щоб вирішити це:

  1. натисніть «i»
  2. написати своє повідомлення про злиття
  3. натисніть «esc»
  4. написати ": wq"
  5. і натисніть клавішу Enter

Пояснення

Як ви пам'ятаєте це, це те, що "i" - це "вставити", "esc" - це вихід, який вставляється, а ": wq" - це просто "написати" і "вийти".


0

це не помилка. ви повинні додати масаж для цього злиття

щоб вирішити це:

  1. натисніть "i", щоб вставити масаж
  2. напишіть свій масаж
  3. натисніть "esc"
  4. написати ": wq" (написати та кинути для збереження масажу та виходу)
  5. натисніть "ввести"

-1

Я виявив помилку, тому що я був новим в git, ви повинні перевірити, чи ввели ви правильний синтаксис

я помилився і написав git commit

і отримав таку ж помилку

використання git commit -m 'some comment'

і ви не будете бачити сторінку

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