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.

bernie2436
fonte
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
Saad.elzwawy
fonte
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.

xiaohu Wang
fonte
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"

oligofren
fonte
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.

Mandeep Singh
fonte
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
Vivek Singh
fonte
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.

hgrov52
fonte
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/

Ankush Jain
fonte
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.

NelsonRoberts
fonte
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”.

Vipin Kumar Shakya
fonte
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"
ehsan asarzadeh
fonte
-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

AyushPayasi
fonte