github блокирует Mac-терминал при использовании команды pull

Я нахожусь в процессе изучения GitHub на Mac (командной строки) и всякий раз, когда я делаю git pull origin master я понял

# Please enter a commit message to explain why this merge is necessary,
# especially if it merges an updated upstream into a topic branch.
#
# Lines starting with '#' will be ignored, and an empty message aborts
# the commit.
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
~                                                                               
".git/MERGE_MSG" 7L, 293C

Терминал, кажется, блокируется и не позволяет мне сразу что-либо вводить, затем, когда он, наконец, позволяет мне вводить текст, кажется, что он не распознает команды git.

Это ошибка в Git или я что-то упустил?

8 ответов

Решение

Ты в текстовом редакторе, vim! Это модальный текстовый редактор, поэтому вам необходимо:

  1. Нажмите i, чтобы войти в режим вставки.
  2. Теперь вы можете напечатать ваше сообщение, как если бы вы были в обычном (немодальном) текстовом редакторе.
  3. Нажмите esc, чтобы вернуться в командный режим.
  4. Затем введите :w затем нажмите Enter, чтобы сохранить.
  5. в заключение :q затем нажмите Enter, чтобы выйти.

Упрости.

Тип :wq и введите

Редактор выглядит как vim согласно вашим описаниям. Эта консоль просто говорит вам написать какое-то сообщение для коммита, который вы хотите сделать, и это обязательно.

  • Просто введите i и вы пойдете в -- INTER -- режим, теперь вы можете написать свои комментарии.

  • После того, как вы закончили писать, нажмите esc введите клавиатуру, и вы перейдете в командный режим. (см. на нижней части консоли)

  • Теперь сохраните изменения, написав :w с последующим нажатием enter ключ

Написание команды <code>:q</code> с последующим нажатием <code>enter</code> ключ </li></ul><p> <a href=Написание команды <code>: q </ code: q

  • Ура! Наконец вы вернулись к главной консоли.

Более простым является сначала ESC, а затем : x (строчные буквы).

Запустите эту команду

git config --global core.editor "gedit"

Добавьте ваше сообщение в этот файл и сохраните его. Вернись назад.

Я исправил эту проблему, выполнив следующие шаги

  1. Удалить #MERGE_MSG#

    rm .git/\#MERGE_MSG#

  2. Удалить MERGE_HEAD

    rm .git/MERGE_HEAD

Кроме того, я явно настроил редактор git на редактор, который мне знаком с vim (вы можете установить nano)

`git config --global core.editor "vim"`

Проблемы обычно возникают, когда мы что-то пишем неправильно.
Скорее эта команда вас интересует:

git commit -m "message"

если бы была проблема, это могло бы сказать что-то вроде

Your branch and 'origin/master' have diverged,
and have 2 and 1 different commits each, respectively.
  (use "git pull" to merge the remote branch into yours)

и использовать:

git pull

что должно привести к:

Already up-to-date.

Тогда хорошо бы проверить:

git status

и попробуйте снова нажать:

git push

Ты можешь сделать git checkout --merge yourbranch

Трехстороннее слияние между текущей веткой, содержимым вашего рабочего дерева и новой веткой выполнено, и вы попадете в новую ветку.

Другие вопросы по тегам