Digite uma mensagem de confirmação para explicar por que essa mesclagem é necessária, especialmente se ela mesclar uma atualização upstream em uma ramificação de tópico


515

Estou usando o Git. Fiz um pull de um repositório remoto e recebi uma mensagem de erro:

Digite uma mensagem de confirmação para explicar por que essa mesclagem é necessária,
especialmente se ela mesclar uma atualização upstream em uma ramificação de tópico.

Tento digitar uma mensagem e pressionar, Entermas nada acontece.

Como digo ao Git / Terminal que terminei de digitar minha mensagem?

Estou usando o Terminal no OS X.


3
Parece que seu GIT está configurado para abrir um modelo pré-configurado e esse modelo está sendo aberto através do editor padrão (vi / vim).
Shunya

Interrompa essa mesclagem e tente usar o git pull --rebase.
Ankush Jain

3
Formar me "Shift ZZ" resolve a questão
papacico

Respostas:


1190

Não é uma mensagem de erro do Git, é o editor, pois o git usa seu editor padrão.

Para resolver isso:

  1. pressione "i" (i para inserir)
  2. escreva sua mensagem de mesclagem
  3. pressione "esc" (escape)
  4. write ": wq" (gravação e saída)
  5. depois pressione enter

7
Ok, mas isso supõe que seu editor seja viou vim.
Gabriele Petronella

106
isso é muito complicado
Connor Leech

92
Senhor eu odeio #Vi
Sobiaholic

153
Se isso ajuda alguém, a maneira como você se lembra disso é que "i" é para "inserção", "esc" é a saída da inserção e ": wq" é apenas "gravação" e "saída".
Josh Beam #

83
Isso também pode ser ↑↑ ↓↓ ← → ← → BA
Wesley Smith

39

Na verdade, não é um erro! Isso significa que você deve inserir alguma mensagem para marcar essa mesclagem. Meu sistema operacional é o Ubuntu 14.04. Se você usa o mesmo sistema operacional, basta fazer o seguinte:

  1. Digite alguma mensagem

  2. CtrlCO

  3. Digite o nome do arquivo (como "Merge_feature01") e pressione Enter

  4. CtrlX sair

Agora, se você acessar o .git e encontrar o arquivo "Merge_feature01", esse é o log de mesclagem.


6
Eu me pergunto como alguém saberia disso? É tão estranho como isso funciona. Obrigado por responder.
Adrian Carr

@ScottyBlades por que diabos deveria? a pergunta é marcada com osx e esta resposta diz respeito a como o Ubuntu define uma configuração totalmente diferente para o Git (usando nanoou pico), que não é aplicável à configuração do OS X. Ele não é generalizável e também não fornece informações sobre como funciona, daí o comentário deixado por @AdrianCarr. Existem respostas muito melhores agora.
oligofren

27

tl; dr Defina o editor para algo melhor, como Sublime ou Atom

Aqui, nice é usado no significado de um editor que você gosta ou encontra mais fácil de usar .

O problema subjacente é que o Git, por padrão, usa um editor pouco intuitivo para a maioria das pessoas: o Vim. Agora, não me entenda mal, eu amo o Vim, e enquanto você pode reservar um tempo (como um mês) para aprender o Vim e tentar entender por que algumas pessoas pensam que o Vim é o melhor editor existente, existe uma maneira mais rápida de corrigir este problema :-)

A solução não é memorizar comandos enigmáticos , como na resposta aceita, mas configurar o Git para usar um editor que você gosta e entende! É realmente tão simples quanto configurar uma dessas opções

  1. a configuração de configuração do git core.editor(por projeto ou globalmente)
  2. a variável de ambiente VISUALou EDITOR(isso também funciona para outros programas)

Vou cobrir a primeira opção para alguns editores populares, mas o GitHub também oferece um excelente guia sobre isso para muitos editores .

Para usar o Atom

Diretamente de seus documentos , insira isso em um terminal: git config --global core.editor "atom --wait"

O Git normalmente espera o comando do editor terminar, mas como o Atom bifurca imediatamente um processo em segundo plano, isso não funcionará, a menos que você tenha a --waitopção.

Para usar texto sublime

Pelas mesmas razões do caso Atom, você precisa de um sinalizador especial para sinalizar ao processo que ele não deve bifurcar em segundo plano:

git config --global core.editor "subl -n -w"


Vim não leva um mês. leva dois dias e você nunca esquece, desde que mantenha uma cábula útil de que precisará, de tempos em tempos, primeiro.
user264431

22

Apenas faça,

CTRL + X

CTRL + C

Ele solicitará que você salve o arquivo, pressione Ye pronto.


Isto é, se o seu editor padrão for "pico" ou "nano". Os comentários acima deverão ser utilizados se o seu editor padrão for o vim.
21719 JacKeown

7

Aqui está pedindo uma mensagem que se conecte à sua mesclagem para referência futura por que você fez essa mesclagem.

press "i"
on top above on #lines write your message
press "esc" button
write ":wq" (it will write in bottom automatically)
press enter

6

Em vez disso, você pode usar o git CtrlZe tentar novamente o commit, mas desta vez adicione "-m" com uma mensagem entre aspas, e ele será confirmado sem avisar você com essa página.


3
lol isso definitivamente resolveria o problema do OP. git commit -m 'I did blah'
James M. Lay

Eu tenho a versão 1.7.11.4 do git em um terminal linux, e apesar do fato de eu fornecer ao git commit -m "message" ou git commit --message "message", o editor ainda aparece de tempos em tempos, solicitando uma mensagem. Alguém sabe por que a opção "-m" é ignorada?
Pglpm

4

Como seu repositório local está com poucas confirmações adiante, o git tenta mesclar seu controle remoto ao seu repositório local. Isso pode ser tratado por meio de mesclagem, mas no seu caso, talvez você esteja procurando uma nova versão, ou seja, adicione seu commit ao topo. Você pode fazer isso com

git rebase ou git pull --rebase

Aqui está um bom artigo explicando a diferença entre git pull& git pull --rebase.

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


0

Como adicionar uma mensagem no terminal android studio com sua mesclagem, isso é para usuários de mac.

  • Etapa 1 - pressione "i"
  • Etapa 2 - Digite sua mensagem após "#"
  • Etapa três - Pressione "esc"
  • Etapa quatro - na parte inferior, escreva ": wq"
  • Etapa cinco - Pressione "Enter"

Você terminou a mesclagem e, em seguida, pode continuar trabalhando no pull para o local local ou criar uma nova ramificação.


0

Não é uma mensagem de erro do Git, é o editor que o git usa seu editor padrão.

Para resolver isso:

  1. pressione "i"
  2. escreva sua mensagem de mesclagem
  3. pressione "esc"
  4. escreva ": wq"
  5. e pressione enter

Explicação

A maneira como você se lembra disso é que “i” é para “insert”, “esc” é a saída da inserção e “: wq” é apenas “write” e “quit”.


0

isso não é um erro. você precisa adicionar um massege para essa mesclagem

para resolver isso:

  1. pressione "i" para inserir seu massege
  2. escreva seu massege
  3. pressione "esc"
  4. write ": wq" (escreva e saia para salvar o massege e sair)
  5. pressione Enter"

-1

Encontrei o erro porque eu era novo no git, você deve verificar se inseriu a sintaxe correta

eu cometi um erro e escrevi git commit

e obteve o mesmo erro

usar git commit -m 'some comment'

e você não verá a página com

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.