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. як мені ввести та зберегти коментар, а потім конкурс?
нуль

7
введіть, iщоб вставити коментар, потім натисніть клавішу esc та введіть:wq
Scott Harwell

1
Якщо ви не знайомі з viцим, ви не замкнені?
Ben Racicot

Відповіді:


225

Ви в текстовому редакторі, vim! Це модальний текстовий редактор, тому вам потрібно:

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

4
Чудово, що git просто припускає, що всі знають vim.
користувач124384

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

де я можу друкувати i?
Валь До

1
@ val-kharitonashvili На тихій клавіатурі вона прилягає до uі o;) Але насправді, поки термінал має фокус, він повинен працювати.
ceyko

Чому це взагалі трапляється? Я завжди робив це, 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.