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


95

Я изучаю 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 или мне что-то не хватает?


5
Он действительно запирается или вы просто не знакомы с ним vi?
Эдвард Томсон,

2
Я не могу точно сказать вам почему, но git хочет, чтобы вы ввели сообщение о фиксации, и вы, скорее всего, находитесь в текстовом редакторе vim.
Misch

ах, понятно, да, я не знаком с vim. как мне ввести и сохранить комментарий, а затем продолжить?
Zero

7
введите, iчтобы вставить комментарий, затем нажмите esc и введите:wq
Скотт Харвелл

1
Если вы не знакомы vi, разве вы не заперты?
Ben

Ответы:


225

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

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

4
Замечательно, что git предполагает, что все знают vim.
user124384

2
@ user124384 Git пытается использовать вашу $EDITORпеременную среды, но возвращается к viней, если не может ее найти. Вы можете настроить резервное копирование через git config core.editor. См. Git-scm.com/book/en/v2/…
ceyko

где я могу напечатать i?
Вал До

1
@ val-kharitonashvili На клавиатуре querty он примыкает к uи o;) Но на самом деле, пока у терминала есть фокус, он должен работать.
ceyko 06

Почему это вообще происходит? Я всегда делал, git merge masterи в последние 2 дня я вижу это ...
Дорогая,


2

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

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

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

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

Написание команды <code>: w </code>

  • Теперь вы можете выйти, написав :qи нажав enterклавишу

Написание команды <code>: q </code>

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


1

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

git config --global core.editor "gedit"

Добавьте свое сообщение в этот файл и сохраните его. Вернись, тяни сейчас.


0

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

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

    rm .git/\#MERGE_MSG#

  2. Удалить MERGE_HEAD

    rm .git/MERGE_HEAD

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

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

0

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

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


0

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

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