En todos los tutoriales de Git que he leído, dicen que puedes hacer:
git init
git add .
git commit
Cuando hago eso, se abre un archivo de texto grande. Ninguno de los tutoriales parece abordar esto, así que no sé qué hacer con el archivo o qué poner en él, si es que hay algo.
git
git-commit
aleatorio
fuente
fuente
--global
para cambiar el valor predeterminado?--global
cambia para el usuario actual y la--system
cambia para todos en esa computadora.Como lo mencionó Ben Collins , sin el
-m "..."
argumento para escribir el compromiso en línea (lo cual generalmente es una mala idea ya que lo alienta a ser breve), este "archivo de texto grande" que se abre es una ventana en la que escribir el mensaje de compromiso .Por lo general, se recomienda escribir un resumen en la primera línea, omitir una línea y luego escribir notas más detalladas debajo; esto ayuda a los programas que hacen cosas como enviar por correo electrónico los mensajes de confirmación con una línea de asunto apropiada y la lista completa de cambios realizados en el cuerpo.
En lugar de cambiar la
EDITOR
variable de shell, también puede cambiar el editor utilizado agregando líneas adicionales en su~/.gitconfig
archivo:Esa segunda línea en realidad no tiene nada que ver con su problema, pero la encuentro realmente útil para poder completar mi
~/.gitignore
archivo con todos esos tipos de archivos que sé que nunca, nunca, querré comprometerme con un repositorio.fuente
El archivo de texto que se está abriendo es un resumen de la operación de confirmación actual. La confirmación de git lo coloca en este archivo para que pueda agregar un mensaje de confirmación en la parte superior del archivo. Una vez que haya agregado su mensaje, simplemente 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 comandos.
fuente
Si está en Mac OS X y usa BBEdit, puede configurarlo como el editor de elección para los mensajes de confirmación:
Una vez que haya terminado de editar, guarde y cierre el archivo y git lo usará para los comentarios.
fuente
Suponiendo que su editor por defecto es vi / vim, puede salir del editor de mensajes de confirmación escribiendo:
que guardará y saldrá del archivo de mensaje de confirmación. Luego, volverá a la sección normal de comandos de git.
Más comandos vi:
http://www.lagmonster.org/docs/vi.html
fuente
esc
para entrar en el modo de comando antes de escribir:x
para guardar y salir.Como todos han dicho, aquí es donde agrega su comentario de confirmación, pero para algunos aún puede ser confuso, especialmente si no ha configurado la configuración de su editor y no sabe qué es VI : entonces podría estar en 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 lidiar con las cosas y este conjunto de comandos puede ayudarlo para que pueda superar su primera confirmación y luego configurar un editor con el que esté familiarizado o usarlo como una oportunidad para aprender a usarlo.
fuente
La
-m
opción de confirmar le permite ingresar un mensaje de confirmación en la línea de comando:fuente
Cuando creas una nueva confirmación, git activa un editor de texto y escribe algunas cosas en él.
Con este editor de texto, la intención es que escriba el mensaje de confirmación que se asociará con su confirmación creada recientemente.
Una vez que haya terminado de hacerlo, guarde y salga del editor de texto. Git usará lo que ha escrito como mensaje de confirmación.
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 utiliza como encabezado (o título) del mensaje. La longitud preferida del encabezado de confirmación es inferior a 40 caracteres, ya que este es el número de caracteres que muestra github en la pestaña Confirmaciones de un repositorio determinado antes de truncarlo, lo que a algunas personas les resulta irritante.
Al redactar el encabezado, usar un verbo en tiempo presente en mayúsculas para la primera palabra es una práctica común, aunque no es obligatorio.
Una nueva línea delinea el encabezado y el cuerpo del mensaje.
El cuerpo puede consistir en lo que quieras. Una descripción general de los cambios introducidos por su compromiso es razonable. Algunas aplicaciones de terceros usan información incluida en el cuerpo de los mensajes de confirmación para activar varios tipos de ganchos (estoy pensando en Gerrit y Pivotal Tracker, por nombrar dos).
Aquí hay un ejemplo breve y agradable. Un liderazgo
#
denota un comentario.Aquí, un Sr. Torvalds opina sobre lo que hace un buen compromiso.
Y aquí Tpope hace lo mismo.
Como se indica en varias otras respuestas, cambiar el editor predeterminado es una línea en la línea de comando.
Para mi preferencia:
fuente
Prueba Escape y luego ZZ, cuando hayas terminado de escribir tu mensaje. Como han dicho otros, cuando ejecuta 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 investigar un poco. En ese caso, presione Escape para entrar en el modo "comando" (a diferencia del modo INSERT) y luego ingrese ZZ. Estoy seguro de que hay otras formas de realizar la tarea, pero eso me sirvió. No habiendo usado nunca VI o emacs, no era evidente para mí y no se mencionaba en ninguna de las guías para principiantes que estaba usando. Ojalá esto ayude.
fuente
El
git commit
comando abrirá el editor especificado en laEDITOR
variable de entorno para que pueda ingresar un comentario de confirmación. En un sistema Linux o BSD, debería ser vi por defecto, aunque cualquier editor debería funcionar.Simplemente ingrese sus comentarios y guarde el archivo.
fuente
Estaba confundido porque seguía intentando ingresar un nombre de archivo después de: w en VIM. Eso no desencadena el compromiso. En su lugar, seguí recibiendo un mensaje "Anulando la confirmación debido a un mensaje de confirmación vacío". No ponga un nombre de archivo después de: w. : w guarda el archivo en .git / COMMIT_EDITMSG de forma predeterminada. Luego: q para salir para completar el compromiso. Puedes ver los resultados con git log.
fuente
Ahora que cambié mi editor a emacs, todo funciona bien.
Pero antes de establecer esto, "git commit -a" abrió gedit, pero también terminó inmediatamente con un "Anulando el compromiso debido a un mensaje de compromiso vacío". Guardar el archivo de gedit no tuvo ningún efecto. La configuración explícita del editor con "git config --global core.editor" gedit "" tuvo el mismo resultado.
No hay nada de malo con emacs, pero por curiosidad, ¿por qué esto no funciona con gedit y hay alguna forma de hacerlo funcionar?
Gracias.
fuente
git config --global core.editor "gedit -s"
Para aquellos de ustedes que usan OS X, 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 debe "Guardar" y luego "Salir" antes de que se complete la confirmación. Hay algunos otros comandos con los que puede jugar como se detalla en esta página:
Biblioteca de desarrolladores de Apple - Abrir comando
También puede intentarlo
git config --global core.editor "open -e -W"
si desea que git siempre abra textedit independientemente del editor predeterminado.fuente
Sí, asegúrese de tener un editor sensato. No estoy seguro de cuál será su editor predeterminado, pero si, como yo, es nano (dirá en algún lugar cerca de la parte superior después de escribir confirmar) solo necesita escribir un comentario y luego presionar Ctrl-x para terminar. Luego presiona y, seguido de enter para confirmar el compromiso.
Además, si desea ver una lista simple de los archivos que comprometerá en lugar de una gran lista de diferencias, intente de antemano
fuente
Al realizar el control de revisión, siempre debe explicar cuáles son los cambios que realizó. Por lo general, la primera vez que tiene un comentario como "Confirmación inicial".
Sin embargo, a la larga, querrás hacer un buen comentario para cada confirmación. Querrás algo de la forma:
fuente
Siendo nuevo en Terminal también, "Escape y luego ZZ" funcionó para mí, he tenido este problema durante meses y tampoco pude encontrar una manera de solucionarlo.
¡Gracias TheGeoff por tu sencillo consejo!
fuente
La siguiente es probablemente la forma más fácil de confirmar todos los cambios:
Por supuesto, hay formas mucho más detalladas de comprometerse, pero eso debería ayudarlo a comenzar.
fuente