¿Git add, commit y push en un solo comando?

¿Hay alguna manera de utilizar estos tres comandos en uno?

git add .
git commit -a -m "commit" (do not need commit message either)
git push

A veces estoy cambiando sólo una letra, el relleno CSS o algo así. Sin embargo, tengo que escribir los tres comandos para empujar los cambios. ¡Hay muchos proyectos en los que sólo soy un empujador, por lo que este comando sería impresionante!

Aunque estoy de acuerdo con Wayne Werner en sus dudas, esto es técnicamente una opción:

git config alias.acp '! git commit -a -m "commit" && git push'

Que define un alias que ejecuta commit y push. Úsalo como git acp. Por favor, ten en cuenta que estos alias "shell" se ejecutan siempre desde la raíz de tu repositorio git.

Otra opción podría ser escribir un hook post-commit que haga el push.

Ah, por cierto, sí que puedes pasar argumentos a los alias de la shell. Si quieres pasar un mensaje de confirmación personalizado, utiliza en su lugar:

git config alias.acp '! acp() { git commit -a -m "$1" && git push ; } ; acp'

(Por supuesto, ahora, usted tendrá que dar un mensaje de confirmación: git acp "¡Mi mensaje va aquí!")

Comentarios (3)

Creo que podrías no entender el flujo de trabajo para el que git fue diseñado. (Para aclarar/corregir lo que quise decir en el comentario, no necesitas el git add ., ya que commit -a normalmente sirve para el mismo propósito - añadir cualquier cambio que aún no haya sido puesto en escena, si los archivos ya han sido añadidos)

Típicamente usted'hará algo como esto:

# make some changes
$ git commit -a -m "Changed something"
# make some more changes
$ git commit -a -m "Changed something else"

lavar, enjuagar, repetir, hasta que haya terminado la función X, o esté en un punto de parada, o simplemente quiera que otras personas vean lo que ha hecho. Entonces haces

$ git push

Git no es SVN - pero parece que usted'está tratando de usarlo como tal. Puede que algunos de los recursos que aparecen al final del artículo aquí te sean de utilidad.

Comentarios (12)

Si el archivo ya está siendo rastreado, entonces no es necesario ejecutar git add, puede simplemente escribir git commit -am 'su mensaje'.

Si no quieres escribir un mensaje de confirmación puedes considerar hacer algo como

git commit --allow-empty-message -am ''

Comentarios (0)