tipos tag remove qué practices oneline log hace existen etiquetas crear best git git-commit

tag - tipos de etiquetas en git



Git commit abre el archivo de texto en blanco, ¿para qué? (17)

En todos los tutoriales de Git que leí, dicen que puedes hacer:

git init git add . git commit

Cuando hago eso, obtengo un gran archivo de texto abierto. Ninguno de los tutoriales parece abordar esto, por lo que no sé qué hacer con el archivo o qué incluir en él, en todo caso.


Ahora que he cambiado mi editor a emacs, todo funciona bien.

Pero antes de configurar esto, "git commit -a" abrió gedit, pero también finalizó inmediatamente con una "Cancelación de compromiso debido a un mensaje de compromiso vacío". Guardar el archivo desde gedit no tuvo ningún efecto. Establecer explícitamente el editor con "git config --global core.editor" gedit "" tuvo el mismo resultado.

No hay nada malo con emacs, pero por curiosidad, ¿por qué esto no funciona con gedit, y hay alguna forma de hacerlo funcionar?

Gracias.


Al hacer un control de revisión, siempre debes explicar qué cambios has hecho. Por lo general, la primera vez que tiene un comentario como "compromiso inicial".

Sin embargo, a la larga, desea hacer un buen comentario para cada compromiso. Querrá algo de la forma:

Se agregó una característica experimental x.

X aumentará el rendimiento de la característica Y en la condición Z. En caso de que necesite X, actívela con los interruptores -x o --feature-eks. Esto dirige la solicitud de función # 1138.


Al ser nuevo en la Terminal también, "Escape y luego ZZ" funcionó para mí, he estado teniendo este problema durante meses y tampoco he podido encontrar una forma de evitarlo.

¡Gracias TheGeoff por tu simple consejo!


Como mencionó Ben Collins , sin el argumento -m "..." para escribir el compromiso en línea (que generalmente es una mala idea, ya que lo alienta a ser breve), este" archivo de texto grande "que se abre es una ventana en el que escribir el mensaje de compromiso.

Por lo general, se recomienda escribir un resumen en la primera línea, omita una línea y luego escriba notas más detalladas debajo; esto ayuda a los programas que hacen cosas como enviar por correo electrónico los mensajes de compromiso con una línea de asunto apropiada y la lista completa de cambios realizados en el cuerpo.

En lugar de cambiar la EDITOR shell EDITOR , también puede cambiar el editor utilizado al agregar las líneas adicionales en su archivo ~/.gitconfig :

[core] editor = emacs excludesfile = /Users/will/.gitignore

Esa segunda línea en realidad no tiene nada que ver con tu problema, pero me parece realmente útil para que pueda llenar mi archivo ~/.gitignore con todos esos tipos de archivos que que nunca, nunca, ~/.gitignore comprometer con un repositorio.


Como todos han dicho, aquí es donde agregas el comentario de confirmación, pero para algunos puede ser confuso si no has configurado tu editor y no estás al tanto de qué es VI : entonces podrías recibir un shock , porque pensarás que todavía estás en el GIT-Bash

En ese caso, de hecho está en un editor de texto con algunas formas interesantes de manejar las cosas y este conjunto de comandos puede ayudarlo para que pueda pasar su primer compromiso y luego configurar un editor con el que esté familiarizado o usarlo como una oportunidad de aprender a usarlo.


Cuando creas un nuevo commit, git activa un editor de texto y escribe algunas cosas en él.

Usando este editor de texto, la intención es que usted escriba el mensaje de compromiso que se asociará con su compromiso creado recientemente.

Después de que haya terminado de hacerlo, guarde y salga del editor de texto. Git usará lo que has escrito como mensaje de compromiso.

El mensaje de confirmación tiene una estructura particular, que se describe a continuación:

La primera línea del mensaje de confirmación se usa como el encabezado (o título) del mensaje. La longitud preffered del encabezado de confirmación es de menos de 40 caracteres, ya que este es el número de caracteres que github muestra en la pestaña Commits de un repositorio determinado antes de truncarlo, lo que algunas personas consideran irritante.

Al componer el encabezado, usar un verbo en tiempo presente en mayúscula para la primera palabra es una práctica común, aunque no obligatoria en absoluto.

Una nueva línea delinea el encabezado y el cuerpo del mensaje.

El cuerpo puede consistir en lo que quieras. Una visión general de los cambios introducidos por su confirmación es razonable. Algunas aplicaciones de terceros usan información incluida el cuerpo de mensajes de confirmación para activar varios tipos de ganchos (estoy pensando en Gerrit y Pivotal Tracker, por nombrar dos).

Aquí hay un breve y dulce ejemplo. Un # líder denota un comentario.

Gitignore index.pyc Ignore gunicorn generated binary file # Please enter the commit message for your changes. Lines starting # with ''#'' will be ignored, and an empty message aborts the commit. # On branch dev # Your branch is ahead of ''origin/dev'' by 10 commits. # (use "git push" to publish your local commits) # # Changes to be committed: # (use "git reset HEAD <file>..." to unstage) # # modified: .gitignore #

Here un señor Torvalds opina sobre lo que hace un buen compromiso.

Y here Tpope hace lo mismo.

Como se indica en varias otras respuestas, cambiar el editor predeterminado es una sola línea en la línea de comando.

Para mi preferencia:

git config --global core.editor "vim"


Debe colocar el mensaje de confirmación en este archivo de texto, luego guardar y salir.

Puede cambiar el editor de texto predeterminado que git usa con este comando:

git config --global core.editor "nano"

Tienes que cambiar nano a cualquier comando que normalmente abra tu editor de texto.


El archivo de texto que se abre es un resumen de la operación de confirmación actual. El git commit te deja en este archivo para que puedas agregar un mensaje de confirmación en la parte superior del archivo. Una vez que haya agregado su mensaje solo guarde y salga de este archivo.

También hay un modificador "-m msg" en este comando que le permite agregar el mensaje de confirmación en la línea de comando.


El comando git commit abrirá el editor especificado en la EDITOR entorno EDITOR para que pueda ingresar un comentario de confirmación. En un sistema Linux o BSD, esto debería ser vi por defecto, aunque cualquier editor debería funcionar.

Simplemente ingrese sus comentarios y guarde el archivo.


Estaba confundido porque seguí tratando de ingresar un nombre de archivo después de: w en VIM. Eso no desencadena la confirmación. En cambio, seguí recibiendo un mensaje "Cancelación de compromiso debido a un mensaje de compromiso vacío". No coloque un nombre de archivo después de: w. : w guarda el archivo en .git / COMMIT_EDITMSG de manera predeterminada. Luego: q para salir para completar la confirmación. Puedes ver los resultados con el registro de git.


La opción -m para confirmar le permite ingresar un mensaje de confirmación en la línea de comando:

git commit -m "my first commit"


La siguiente es probablemente la forma más fácil de realizar todos los cambios:

git commit -a -m "Type your commit message here..."

Por supuesto, hay maneras mucho más detalladas de comprometerse, pero eso debería ayudarlo a comenzar.


Para aquellos de ustedes que usan OS XI, encontraron que este comando funciona bien:
git config --global core.editor "open -t -W"

lo que obligará a Git a abrir el editor de texto predeterminado (textedit en mi caso) y luego esperar a que salga de la aplicación. Tenga en cuenta que necesita "Guardar" y luego "Cerrar" textedit antes de que se realice la confirmación. Hay algunos otros comandos con los que puedes jugar como se detalla en esta página:

Biblioteca de desarrolladores de Apple - Comando abierto

También puede probar git config --global core.editor "open -e -W" si desea que git abra siempre textedit independientemente de cuál sea el editor predeterminado.


Pruebe Escape y luego ZZ, después de que termine de escribir su mensaje. Como otros han dicho al ejecutar ese comando de confirmación, en realidad ejecuta un editor de texto para ingresar el mensaje. En mi caso (OS X) fue VI, que descubrí después de cavar un poco. En ese caso, presione Escape para pasar al modo "comando" (a diferencia del modo INSERT), ingrese ZZ. Estoy seguro de que hay otras formas de llevar a cabo la tarea, pero eso fue lo que hizo. Nunca utilicé VI o emacs y no me resultó evidente y no fue mencionado en ninguna de las guías para principiantes que estaba usando. Espero que esto ayude.


Sí, asegúrate de tener un editor sensato. No estoy seguro de cuál será su editor predeterminado, pero si, como yo, es nano (dirá algo cerca de la parte superior después de escribir commit), solo tiene que escribir un comentario y luego presionar Ctrl-x para finalizar. Luego presiona y, luego ingresa para confirmar la confirmación.

Además, si desea ver una lista simple de los archivos que va a cometer en lugar de una gran lista de diff antes de intentarlo

git diff --name-only


Si utiliza Mac OS X y usa BBEdit, puede configurarlo como editor de elección para los mensajes de confirmación:

git config --global core.editor "bbedit -w"

Una vez que termine de editar, guarde y cierre el archivo y git lo usará para los comentarios.


Suponiendo que su editor está por defecto en vi / vim, puede salir del editor de mensajes de confirmación escribiendo:

:x

que guardará y saldrá del archivo de mensaje de confirmación. Luego volverás a la sección de comando normal de git.

Más comandos de vi:
http://www.lagmonster.org/docs/vi.html