¿Cómo puedo organizar y confirmar todos los archivos, incluidos los archivos recién agregados, con un solo comando?
¿Cómo puedo organizar y confirmar todos los archivos, incluidos los archivos recién agregados, con un solo comando?
Respuestas:
Hace
git add -A && git commit -m "Your Message"
cuenta como un "comando único"?
Edición basada en la respuesta de @ thefinnomenon a continuación :
Para tenerlo como git alias
, use:
git config --global alias.coa '!git add -A && git commit -m'
y confirme todos los archivos, incluidos los nuevos, con un mensaje con:
git coa "A bunch of horrible changes"
Explicación (de la git add
documentación ):
-A, --todos, --no-ignore-remove
Actualice el índice no solo donde el árbol de trabajo tiene una coincidencia de archivos, sino también donde el índice ya tiene una entrada. Esto agrega, modifica y elimina las entradas de índice para que coincidan con el árbol de trabajo.
Si no
<pathspec>
se da cuando se usa la opción -A, todos los archivos en todo el árbol de trabajo se actualizan (las versiones anteriores de Git se usan para limitar la actualización al directorio actual y sus subdirectorios).
git add -A ; git commit -m "Your Message"
Este comando agregará y confirmará todos los archivos modificados, pero no los archivos recién creados .
git commit -am "<commit message>"
De man git-commit:
-a, --all
Tell the command to automatically stage files that have been modified
and deleted, but new files you have not told Git about are not
affected.
Yo uso esta función:
gcaa() { git add --all && git commit -m "$*" }
En mi archivo de configuración zsh, así que solo puedo hacer:
> gcaa This is the commit message
Para organizar y confirmar automáticamente todos los archivos.
function gcaa() { git add --all && git commit -m "$*" && git push }
gaa && gc -m "my commit"
pero es mucho más agradable ... <se apresura a cambiar bashrc ..>
One-liner para organizar TODOS los archivos ( modificados , eliminados y nuevos ) y confirmar con comentarios:
git add --all && git commit -m "comment"
http://git-scm.com/docs/git-add
http://git-scm.com/docs/git-commit
No estoy seguro de por qué todas estas respuestas bailan en torno a lo que creo que es la solución correcta, pero lo que vale aquí es lo que uso:
git config --global alias.coa '!git add -A && git commit -m'
git coa "A bunch of horrible changes"
NOTA: coa
es la abreviatura de commit all y se puede reemplazar con cualquier cosa que su corazón desee
git alias
camino, el resto es aburrido.
Comprometerse en git puede ser un proceso de múltiples pasos o un paso dependiendo de la situación.
Esta situación es donde tiene varios archivos actualizados y desea confirmar:
Debe agregar todos los archivos modificados antes de comprometer algo.
git add -A
o
git add --all
Después de eso, puede usar commit todos los archivos agregados
git commit
con esto tienes que agregar el mensaje para este commit.
Si solo desea una forma "rápida y sucia" de ocultar los cambios en la rama actual, puede usar el siguiente alias:
git config --global alias.temp '!git add -A && git commit -m "Temp"'
Después de ejecutar ese comando, puede escribir git temp
para que git confirme automáticamente todos sus cambios en la rama actual como una confirmación denominada "Temp". Luego, puede usar git reset HEAD~
más adelante para "confirmar" los cambios para poder seguir trabajando en ellos, o git commit --amend
para agregar más cambios a la confirmación y / o darle un nombre apropiado.
Tengo en mi configuración dos alias:
alias.foo=commit -a -m 'none'
alias.coa=commit -a -m
si soy demasiado vago, solo confirmo todos los cambios con
git foo
y solo para hacer un commit rápido
git coa "my changes are..."
coa significa "cometer todo"
Ejecuta el comando dado
git add . && git commit -m "Changes Committed"
Sin embargo, incluso si parece un solo comando, son dos comandos separados que se ejecutan uno por uno. Aquí solíamos &&
combinarlos. No es muy diferente a correr
git add .
y por git commit -m "Changes Committed"
separado. Puede ejecutar varios comandos juntos, pero la secuencia importa aquí. Cómo, si desea enviar los cambios al servidor remoto junto con la preparación y la confirmación, puede hacerlo como se indica,
git add . && git commit -m "Changes Committed" && git push origin master
En cambio, si cambia la secuencia y pone el push
primero, se ejecutará primero y no dará el empuje deseado después de la puesta en escena y el compromiso solo porque ya se ejecutó primero.
&&
ejecuta el segundo comando en la línea cuando el primer comando regresa con éxito, o con un nivel de error de 0. Lo contrario de &&
es ||
, que ejecuta el segundo comando cuando el primer comando no tiene éxito, o con un nivel de error de 1.
Alternativamente, puede crear alise as git config --global alias.addcommit '!git add -a && git commit -m'
y usarlo comogit addcommit -m "Added and commited new files"
Excelentes respuestas, pero si buscas una línea única, puedes concatenar, alias y disfrutar de la comodidad:
git add * && git commit -am "<commit message>"
Es una sola línea pero dos comandos, y como se mencionó, puede usar un alias para estos comandos:
alias git-aac="git add * && git commit -am "
(el espacio al final es importante) porque va a parametrizar el nuevo comando de mano corta.
A partir de este momento, usarás este alias:
git-acc "<commit message>"
Básicamente dices:
git, agrega para mí todos los archivos no rastreados y compromételos con este mensaje de confirmación dado.
Espero que uses Linux, espero que esto ayude.
Puedes escribir un pequeño guión (mira la respuesta de Ian Clelland) llamado git-commitall
que usa varios comandos git para realizar lo que quieres hacer.
Coloque este script en cualquier lugar de su $PATH
. Puedes llamarlo por git commitall
... ¡muy útil!
Encontrado aquí (pregunta y todas las respuestas lamentablemente eliminadas, solo visibles con alta reputación)