Пожалуйста, введите сообщение коммита, чтобы объяснить, почему это объединение необходимо, особенно если оно объединяет обновленный апстрим в ветку темы.


515

Я использую Git. Я сделал вытащить из удаленного репо и получил сообщение об ошибке:

Пожалуйста, введите сообщение коммита, чтобы объяснить, почему это объединение необходимо,
особенно если оно объединяет обновленный апстрим в ветку темы.

Я пытаюсь напечатать сообщение и нажать, Enterно ничего не происходит.

Как мне сказать Git / Terminal, что я закончил вводить свое сообщение?

Я использую терминал на OS X.


3
Похоже, что ваш GIT настроен на открытие предварительно настроенного шаблона, и этот шаблон открывается через редактор по умолчанию (vi / vim).
Шуня

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

3
Форма меня "Shift ZZ" решает проблему
Papacico

Ответы:


1192

Это не сообщение об ошибке Git, это редактор, поскольку git использует ваш редактор по умолчанию.

Чтобы решить это:

  1. нажмите «я» (я для вставки)
  2. напишите ваше сообщение о слиянии
  3. нажмите "esc" (побег)
  4. написать ": WQ" (написать и выйти)
  5. затем нажмите ввод

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. Есть гораздо лучшие ответы сейчас.
oligofren

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возможность.

Использовать Sublime Text

По тем же причинам, что и в случае с 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'
Джеймс М. Лей

У меня есть git версии 1.7.11.4 на терминале linux, и, несмотря на то, что я даю git commit -m «message» или git commit --message «message», редактор все равно время от времени всплывает, запрашивая сообщение. Кто-нибудь знает, почему ключ "-m" игнорируется?
pglpm

4

Поскольку ваш локальный репозиторий находится в нескольких коммитах вперед, git пытается объединить ваш удаленный репозиторий с вашим локальным репо. Это может быть выполнено с помощью слияния, но в вашем случае, возможно, вы ищете rebase, т.е. добавьте свой коммит в начало. Вы можете сделать это с

git rebase или git pull --rebase

Вот хорошая статья, объясняющая разницу между git pull& git pull --rebase.

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


0

Как добавить сообщение в Android Studio Terminal с вашим слиянием. Это для пользователей Mac.

  • Шаг первый - Нажмите «я»
  • Шаг второй - введите ваше сообщение после "#"
  • Шаг третий - Нажмите "Esc"
  • Шаг четвертый - в самом низу напишите ": wq"
  • Шаг пятый - нажмите «Enter»

Вы все сделали с вашим слиянием. После этого вы можете продолжить работу или потяните к своему локальному после или создайте новую ветку.


0

Это не сообщение об ошибке Git, это редактор git использует ваш редактор по умолчанию.

Чтобы решить это:

  1. нажмите «я»
  2. напишите ваше сообщение о слиянии
  3. нажмите «Esc»
  4. написать «: WQ»
  5. и нажмите ввод

объяснение

Вы помните, что «i» означает «вставка», «esc» - выход из вставки, а «: wq» - просто «запись» и «выход».


0

Это не ошибка. Вы должны добавить massege для этого слияния

чтобы решить это:

  1. нажмите "я", чтобы вставить свой massege
  2. напиши свой массаж
  3. нажмите "Esc"
  4. напишите ": wq" (напишите и выйдите для сохранения massege и выхода)
  5. нажмите Ввод"

-1

Я обнаружил ошибку, потому что я был новичком в Git, вы должны проверить, правильно ли вы ввели синтаксис

я ошибся и написал git commit

и получил ту же ошибку

использование git commit -m 'some comment'

и вы не увидите страницу с

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.