github bloqueia o terminal mac ao usar o comando pull

95

Estou aprendendo github no mac (linha de comando) e sempre que faço git pull origin masterisso,

# 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

o terminal parece travar e não me permite inserir nada imediatamente, então quando ele finalmente permite que eu insira o texto, parece que não reconhece os comandos do git.

Este é um bug no git ou estou faltando alguma coisa?

zero
fonte
5
Ele realmente trava ou você simplesmente não está familiarizado vi?
Edward Thomson
2
Eu não posso dizer exatamente o porquê, mas git quer que você insira uma mensagem de commit, e você provavelmente está no editor de texto vim.
Misch
ah, entendo, sim, não estou familiarizado com o vim. como faço para inserir e salvar o comentário e depois continuar?
zero
7
digite ipara inserir um comentário e pressione esc e digite:wq
Scott Harwell
1
Se você não conhece, vinão está trancado?
Ben Racicot

Respostas:

225

Você está no editor de texto, vim! É um editor de texto modal , então você precisa:

  1. Pressione ipara entrar no modo de inserção .
  2. Agora você pode digitar sua mensagem, como se estivesse em um editor de texto normal (não modal).
  3. Pressione escpara voltar ao modo de comando .
  4. Em seguida, digite :wseguido de enterpara salvar.
  5. Finalmente :qseguido por enterpara sair.
Ceyko
fonte
4
É ótimo que o git presuma que todo mundo conhece o vim.
user124384
2
@ user124384 O Git tenta usar sua $EDITORvariável de ambiente, mas volta a tentar viencontrar uma. Você pode configurar o fallback por meio do git config core.editor. Consulte git-scm.com/book/en/v2/…
ceyko
onde posso digitar i?
Val Do
1
@ val-kharitonashvili Em um teclado consultado, é adjacente a ue o;) Mas, realmente, enquanto o terminal tiver o foco, ele deve funcionar.
ceyko
Por que isso acontece? Eu sempre estive fazendo git merge mastere nos últimos 2 dias, estou vendo isso ...
Querida
18

Simplifique.

Digite :wqeenter

abbas
fonte
2

O editor parece ser vim de acordo com suas descrições. Este console está simplesmente dizendo a você para escrever alguma mensagem para o commit que você deseja fazer, e é obrigatório como faz.

  • Basta digitar ie você entrará no -- INTER --modo, agora você pode escrever seus comentários.

  • Depois de terminar de escrever, pressione a esctecla no teclado e você irá para o modo de comando. ( veja na parte inferior do console )

  • Agora salve as alterações escrevendo :we pressionando a entertecla

Escrevendo comando <code>: w </code>

  • Você pode sair agora escrevendo :qe pressionando a entertecla

Escrevendo comando <code>: q </code>

  • Viva! Finalmente você está de volta ao console principal.
OM Bharatiya
fonte
2

Mais simples é primeiro ESC e depois : x(minúsculas).

Ariel Ruiz
fonte
1

Execute este comando

git config --global core.editor "gedit"

Adicione sua mensagem neste arquivo e salve-o. Volte, puxe agora.

Ayman Elshehawy
fonte
0

Eu resolvi esse problema executando as seguintes etapas

  1. Remova # MERGE_MSG #

    rm .git/\#MERGE_MSG#

  2. Remover MERGE_HEAD

    rm .git/MERGE_HEAD

Além disso, eu defini explicitamente o editor do git para um editor que estou familiarizado com o vim (você pode definir o nano )

`git config --global core.editor "vim"`
Lukasz Dynowski
fonte
0

Você pode fazer git checkout --merge yourbranch

Uma fusão de três vias entre o branch atual, o conteúdo da sua árvore de trabalho e o novo branch é feito, e você estará no novo branch.

mdeora
fonte
0

Os problemas geralmente acontecem quando escrevemos algo errado.
É mais provável que você esteja interessado neste comando:

git commit -m "message"

se houver um problema, pode ser algo como

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)

E use:

git pull

que deve levar a:

Already up-to-date.

Então é bom verificar:

git status

e tente empurrar novamente:

git push
Erik Rybalkin
fonte