Ingrese un mensaje de confirmación para explicar por qué esta fusión es necesaria, especialmente si combina una actualización ascendente en una rama temática

515

Estoy usando Git. Hice una extracción desde un repositorio remoto y recibí un mensaje de error:

Ingrese un mensaje de confirmación para explicar por qué esta fusión es necesaria,
especialmente si fusiona un flujo ascendente actualizado en una rama temática.

Intento escribir un mensaje y presionar Enterpero no pasa nada.

¿Cómo le digo a Git / Terminal que terminé de escribir mi mensaje?

Estoy usando Terminal en OS X.

bernie2436
fuente
3
Parece que su GIT está configurado para abrir una plantilla preconfigurada y esa plantilla se está abriendo a través del editor predeterminado (vi / vim).
Shunya
Anule esta fusión e intente usar git pull --rebase.
Ankush Jain
3
Form me "Shift ZZ" resuelve el problema
papacico

Respuestas:

1191

No es un mensaje de error de Git, es el editor ya que git usa su editor predeterminado.

Para resolver esto:

  1. presione "i" (i para insertar)
  2. escribe tu mensaje de fusión
  3. presione "esc" (escape)
  4. escribir ": wq" (escribir y salir)
  5. luego presione enter
Saad.elzwawy
fuente
77
Ok, pero esto supone que su editor es vio vim.
Gabriele Petronella
106
eso es hella complicado
Connor Leech
92
Señor que odioVi
Sobiaholic
153
Si ayuda a alguien, la forma en que recuerda esto es que "i" es para "insertar", "esc" es la salida de la inserción y ": wq" es simplemente "escribir" y "salir".
Josh Beam
83
Esto también podría ser ↑↑ ↓↓ ← → ← → BA
Wesley Smith el
39

En realidad no es un error! Significa que debe ingresar algún mensaje para marcar esta fusión. Mi sistema operativo es Ubuntu 14.04.Si usa el mismo sistema operativo, solo necesita hacer esto de la siguiente manera:

  1. Escribe un mensaje

  2. CtrlCO

  3. Escriba el nombre del archivo (como "Merge_feature01") y presione Enter

  4. CtrlX salir

Ahora, si va a .git y encontrará el archivo "Merge_feature01", ese es el registro de fusión en realidad.

xiaohu Wang
fuente
66
Me pregunto cómo alguien sabría esto. Es muy extraño cómo funciona esto. Gracias por responder esto.
Adrian Carr
@ScottyBlades, ¿por qué debería hacerlo? la pregunta está etiquetada como osx, y esta respuesta se refiere a cómo Ubuntu configura una configuración completamente diferente para Git (usando nanoo pico), que no es aplicable a la configuración de OS X. De ninguna manera es generalizable y tampoco proporciona una idea de cómo funciona, de ahí el comentario dejado por @AdrianCarr. Hay respuestas mucho mejores ahora.
oligofren
27

tl; dr Establece el editor en algo más agradable, como Sublime o Atom

Aquí nice se usa en el significado de un editor que le guste o encuentre más fácil de usar .

El problema subyacente es que Git usa de manera predeterminada un editor que no es intuitivo para la mayoría de las personas: Vim. Ahora, no me malinterpreten, amo a Vim, y si bien podría dedicar un tiempo aparte (como un mes) para aprender Vim y tratar de entender por qué algunas personas piensan que Vim es el mejor editor que existe, hay una manera más rápida de arreglar este problema :-)

¡La solución no es memorizar comandos crípticos , como en la respuesta aceptada, sino configurar Git para usar un editor que te guste y entiendas! Es realmente tan simple como configurar cualquiera de estas opciones

  1. la configuración de configuración de git core.editor(por proyecto o globalmente)
  2. la variable de entorno VISUALo EDITOR(esto también funciona para otros programas)

Cubriré la primera opción para un par de editores populares, pero GitHub también tiene una excelente guía para muchos editores .

Para usar Atom

Directamente desde sus documentos , ingrese esto en una terminal: git config --global core.editor "atom --wait"

Git normalmente espera a que termine el comando del editor, pero como Atom se bifurca a un proceso en segundo plano de inmediato, esto no funcionará, a menos que le dé la --waitopción.

Para usar texto sublime

Por las mismas razones que en el caso de Atom, necesita un indicador especial para indicarle al proceso que no debe bifurcarse en segundo plano:

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

oligofren
fuente
Vim no toma un mes. lleva dos días y nunca se olvida, siempre que tenga una práctica hoja de trucos que necesitará de vez en cuando, al principio.
user264431
22

Solo haz,

CTRL + X

CTRL + C

Le pedirá que guarde el archivo, presione Y, y ya está.

Mandeep Singh
fuente
Esto es si su editor predeterminado es "pico" o "nano". Los comentarios anteriores deben usarse si su editor predeterminado es vim.
JacKeown
7

Aquí le está pidiendo un mensaje que se conecte con su fusión para referencia futura por qué realizó esta fusión.

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
fuente
6

En su lugar, puede activar CtrlZy volver a intentar la confirmación, pero esta vez agregue "-m" con un mensaje entre comillas después, luego se comprometerá sin solicitarle esa página.

hgrov52
fuente
3
jajaja esto definitivamente resolvería el problema del OP. git commit -m 'I did blah'
James M. Lay
Tengo git versión 1.7.11.4 en un terminal de Linux, y a pesar del hecho de que doy git commit -m "mensaje" o git commit --message "mensaje", todavía el editor aparece de vez en cuando, solicitando un mensaje. ¿Alguien sabe por qué se ignora el modificador "-m"?
pglpm
4

Como su repositorio local tiene pocas confirmaciones por delante, git intenta fusionar su control remoto con su repositorio local. Esto se puede manejar a través de la fusión, pero en su caso, tal vez esté buscando un rebase, es decir, agregue su commit en la parte superior. Puedes hacer esto con

git rebase o git pull --rebase

Aquí hay un buen artículo que explica la diferencia entre git pull& git pull --rebase.

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

Ankush Jain
fuente
0

Cómo agregar un mensaje en la terminal de Android Studio con su combinación. Esto es para usuarios de Mac.

  • Paso uno - Presiona "i"
  • Paso dos: ingrese su mensaje después de "#"
  • Paso tres: presione "esc"
  • Paso cuatro: en la parte inferior escribe ": wq"
  • Paso cinco: presiona "Enter"

Ya ha terminado con su fusión. Luego, puede continuar trabajando en la extracción local o crear una nueva sucursal.

NelsonRoberts
fuente
0

No es un mensaje de error de Git, es el editor git utiliza su editor predeterminado.

Para resolver esto:

  1. presione "i"
  2. escribe tu mensaje de fusión
  3. presione "esc"
  4. escriba ": wq"
  5. y presione enter

Explicación

La forma en que recuerda esto es que "i" es para "insertar", "esc" es la salida de la inserción y ": wq" es solo "escribir" y "salir".

Vipin Kumar Shakya
fuente
0

Esto no es un error. tienes que agregar un masaje para esta fusión

para resolver esto:

  1. presione "i" para insertar su masajista
  2. escribe tu masajista
  3. presione "esc"
  4. escriba ": wq" (escriba y salga para guardar el masaje y salir)
  5. presione "enter"
ehsan asarzadeh
fuente
-1

Encontré el error porque era nuevo en git, debe verificar si ha ingresado la sintaxis correcta

cometí un error y escribí git commit

y obtuve el mismo error

utilizar git commit -m 'some comment'

y no verás la página con

AyushPayasi
fuente