github bloquea el terminal mac cuando se usa el comando pull

95

Estoy en el proceso de aprender github en mac (línea de comandos) y siempre que lo hago git pull origin masterobtengo esto

# 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

la terminal parece bloquearse y no me permite ingresar nada inmediatamente, luego, cuando finalmente me permite ingresar texto, parece que no reconoce los comandos de git.

¿Es esto un error en git o me falta algo?

cero
fuente
5
¿Realmente se bloquea o simplemente no está familiarizado con él vi?
Edward Thomson
2
No puedo decirte exactamente por qué, pero git quiere que ingreses un mensaje de confirmación, y lo más probable es que estés en el editor de texto vim.
Misch
ah ya veo, sí, no estoy familiarizado con vim. ¿Cómo ingreso y guardo el comentario y luego continúo?
cero
7
escriba ipara insertar un comentario, luego presione esc y escriba:wq
Scott Harwell
1
Si no está familiarizado con vi¿no está encerrado?
Ben Racicot

Respuestas:

225

¡Estás en el editor de texto, vim! Es un editor de texto modal , por lo que necesitaría:

  1. Presione ipara ingresar al modo de inserción .
  2. Ahora puede escribir su mensaje, como si estuviera en un editor de texto normal (no modal).
  3. Presione escpara volver al modo de comando .
  4. Luego escriba :wseguido de enterpara guardar.
  5. Finalmente :qseguido de enterdejar de fumar.
ceyko
fuente
4
Es genial que git asuma que todos conocen a vim.
user124384
2
@ user124384 Git intenta usar su $EDITORvariable de entorno, pero recurre a viella si no puede encontrar una. Puede configurar el respaldo a través de git config core.editor. Ver git-scm.com/book/en/v2/…
ceyko
donde puedo escribir i?
Val Do
1
@ val-kharitonashvili En un teclado querty, está junto a uy o;) Pero en realidad, siempre que la terminal tenga el foco, debería funcionar.
ceyko
¿Por qué sucede esto? Siempre lo he estado haciendo git merge mastery en los últimos 2 días, estoy viendo esto ...
Cariño
18

Hazlo simple.

Tipo :wqyenter

abbas
fuente
2

El editor parece ser vim según sus descripciones. Esta consola simplemente te dice que escribas algún mensaje para la confirmación que deseas realizar, y es obligatorio.

  • Simplemente escriba iy entrará en el -- INTER --modo, ahora puede escribir sus comentarios.

  • Una vez que haya terminado de escribir, presione la esctecla en su teclado y pasará al modo de comando. ( ver en la parte inferior de la consola )

  • Ahora guarde los cambios escribiendo y :wluego presionando la entertecla

Escribiendo el comando <code>: w </code>

  • Puede salir ahora escribiendo y :qluego presionando la entertecla

Escribiendo el comando <code>: q </code>

  • ¡Viva! Finalmente regresa a la consola principal.
OM Bharatiya
fuente
2

Más simple es primero ESC y luego : x(minúsculas).

Ariel Ruiz
fuente
1

Ejecuta este comando

git config --global core.editor "gedit"

Agregue su mensaje en este archivo y guárdelo. Vuelve a tirar ahora.

Ayman Elshehawy
fuente
0

Solucioné este problema ejecutando los siguientes pasos

  1. Eliminar # MERGE_MSG #

    rm .git/\#MERGE_MSG#

  2. Quitar MERGE_HEAD

    rm .git/MERGE_HEAD

Además, configuré explícitamente el editor de git en un editor con el que estoy familiarizado con vim (puedes configurar nano )

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

Tu puedes hacer git checkout --merge yourbranch

Se realiza una fusión de tres vías entre la rama actual, el contenido de su árbol de trabajo y la nueva rama, y ​​estará en la nueva rama.

mdeora
fuente
0

Los problemas suelen ocurrir cuando escribimos mal algo.
Es más probable que este comando le interese:

git commit -m "message"

si hubiera un problema, podría decir 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)

y use:

git pull

que debería conducir a:

Already up-to-date.

Entonces es bueno comprobar:

git status

e intente presionar de nuevo:

git push
Erik Rybalkin
fuente