¿Hay alguna forma de usar estos tres comandos en uno?
git add .
git commit -a -m "commit" (do not need commit message either)
git push
A veces solo cambio una letra, relleno CSS o algo así. Aún así, tengo que escribir los tres comandos para impulsar los cambios. Hay muchos proyectos donde solo soy un empujador, por lo que este comando sería increíble.
Respuestas:
Partiendo de la respuesta de @ Gavin:
Hacer que lazygit sea una función en lugar de un alias le permite pasarle un argumento. He agregado lo siguiente a mi .bashrc (o .bash_profile si Mac):
Esto le permite proporcionar un mensaje de confirmación, como
Por supuesto, podría reforzar esto aún más aceptando aún más argumentos, como qué lugar remoto para empujar o qué rama.
fuente
$*
lugar de$1
guardar escribiendo las citas:lazygit My commit msg
function dirtygit() { git add . git commit -a -m "$*" git push }
Terminé agregando un alias a mi
.gitconfig
archivo:Uso:
git cmp "Long commit message goes here"
Agrega todos los archivos, luego usa el comentario para el mensaje de confirmación y lo empuja hacia el origen.
Creo que es una mejor solución porque tienes control sobre el mensaje de confirmación.
El alias también se puede definir desde la línea de comandos, esto lo agrega a su
.gitconfig
:fuente
!f() { ... }; f
exactamente? Una explicación más detallada de esa línea mejoraría aún más la respuesta.f
, luego la llama.git pull
al inicio para reducir las fusiones.Si bien estoy de acuerdo con Wayne Werner en sus dudas, esta es técnicamente una opción:
Que define un alias que se ejecuta
commit
ypush
. Úselo comogit acp
. Tenga en cuenta que tales alias de "shell" siempre se ejecutan desde la raíz de su repositorio git.Otra opción podría ser escribir un gancho posterior a la confirmación que haga el empuje.
Ah, por cierto, de hecho se puede pasar argumentos a Shell alias. Si desea pasar un mensaje de confirmación personalizado, utilice:
(Por supuesto, ahora, tendrá que dar un mensaje de registro:
git acp "My message goes here!"
)fuente
git
agrega automáticamente los escapes (marcado congit config -e
).Creo que podría malinterpretar el flujo de trabajo para el que se diseñó git. (Para aclarar / corregir lo que quise decir en el comentario, no necesita el
git add .
, ya quecommit -a
generalmente tiene el mismo propósito: agregar cualquier cambio que aún no se haya organizado, si los archivos ya se han agregado)Por lo general, harás algo como esto:
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 lo haces
Git no es SVN, pero parece que estás tratando de usarlo como tal. Puede encontrar algunos de los recursos al final del artículo aquí para ser de alguna utilidad.
fuente
git add .
ygit commit -a
no son lo mismoLo uso en mi .bash_profile
Se ejecuta como
No olvide ejecutar
source ~/.bash_profile
después de guardar el alias.fuente
Puede usar el script bash, establecer un alias para iniciar cualquier comando o grupo de comandos
fuente
Establecer como un alias en bash:
Llámalo:
(Para que este alias sea permanente, deberá incluirlo en su .bashrc o .bash_profile)
fuente
La solución más simple sería:
git add
ya está contenido en un parámetro de commit, pero si lo desea, puede conectarlos a todos:fuente
En Linux / Mac, esta opción práctica también debería funcionar
Si está trabajando en una nueva sucursal creada localmente, cambie la
git push
pieza congit push -u origin branch_name
Si desea editar su mensaje de confirmación en el editor del sistema, entonces
abrirá el editor y una vez que guarde el mensaje, también lo empujará.
fuente
Puedes probar gitu .
Por primera vez (el nodo js debe estar instalado):
Después de esto:
Para emitir esos tres comandos a la vez.
Lo bueno es que no tiene que preocuparse cuando reinstala su sistema o cuando desea hacer esto en diferentes computadoras y no es necesario modificar ningún archivo. Esto también funciona en diferentes plataformas (no solo Linux y Mac, sino también Windows bajo el símbolo del sistema como
cmd
ypowershell
) solo que tiene que instalarnpm
ynodejs
(git
por supuesto).fuente
Si el archivo ya está siendo rastreado, entonces no necesita ejecutarlo
git add
, simplemente puede escribirgit commit -am 'your message'
Si no desea escribir un mensaje de confirmación, puede considerar hacer algo como
git commit --allow-empty-message -am ''
fuente
Este resultado : intente esto: comando simple de script uno para git add, git commit y git push
Abra su CMD en Windows y pegue esta respuesta
git commit -m "your message" . && git push origin master
fuente
Como se menciona en esta respuesta, puede crear un alias git y asignarle un conjunto de comandos. En este caso, sería:
y úsalo con
fuente
Escriba un pequeño script llamado gitpush.sh con las siguientes líneas y agréguelo a su directorio ~.
Ahora agregue un alias en ~ / .bashrc como a continuación:
Ahora desde cualquier repositorio de git simplemente escriba "mensaje" de gitpush.
fuente
Yo uso un archivo por lotes:
fuente
Hay algunos problemas con los scripts anteriores:
shift "elimina" el parámetro $ 1, de lo contrario, "push" lo leerá y "lo entenderá mal".
Mi consejo:
fuente
Cuando desee un comportamiento similar a svn de git commit, use esto en sus alias git en su .gitconfig
commit = "!f() { git commit \"$@\" && git push; };f"
fuente
Si está utilizando concha de pescado (a partir de la respuesta de btse):
Guarde este archivo dentro de '~ / .config / fish / functions' como 'quickgit.fish'. Cree el directorio si no existe. '--git-dir = $ PWD / .git' Asegura que ejecutamos los comandos git contra el proyecto git donde llamamos a la función
Reinicie el terminal, navegue hasta el proyecto, realice cambios, y ahora puede llamar a 'quickgit "mensaje de ejemplo"'. Los cambios se agregarán, confirmarán y enviarán :).
También se puede encontrar como un Gist aquí: https://gist.github.com/Abushawish/3440a6087c212bd67ce1e93f8d283a69
fuente
Ya hay muchas buenas soluciones, pero aquí hay una solución que me parece más elegante por la forma en que quiero trabajar:
Puse un script en mi camino llamado "git-put" que contiene:
Eso me permite correr:
..para agregar todos los archivos, confirmarlos y enviarlos.
(También agregué el "-u" porque me gusta hacer esto de todos modos, aunque no esté relacionado con este problema. Asegura que la rama ascendente siempre esté configurada para extraer).
Me gusta este enfoque porque también permite usar "git put" sin agregar todos los archivos (omita el "-a"), o con cualquier otra opción que quiera pasar para confirmar. Además, "poner" es un breve resumen de "push" y "commit"
fuente
Si usa VSCode, puede descargar esta extensión que le permitirá hacerlo en un atajo de teclado simple.
fuente
Si estás usando una Mac:
Inicie Terminal Type "cd ~ /" para ir a su carpeta de inicio
Escriba "touch .bash_profile" para crear su nuevo archivo.
Edite .bash_profile con su editor favorito (o simplemente escriba "open -e .bash_profile" para abrirlo en TextEdit).
Copie y pegue lo siguiente en el archivo:
Después de esto, reinicie su terminal y simplemente agregue, confirme y presione un comando fácil, por ejemplo:
fuente
Para los usuarios de MAC VSC, la mejor configuración es:
1) presione 'shift + cmd + P' y escriba:
Presione ENTRAR (esto instalará el comando de código para acceder fácilmente al bash_profile)
2) ahora puede ejecutar:
code ~/.bash_profile
para abrir el bash_profile vacío3) ingrese una nueva función allí:
4) ahora reinicie VSC
5) realice un cambio, guárdelo y escriba
lazygit message
para ejecutar los tres comandos simultáneamentefuente
Para los usuarios de macOS:
Abra su Terminal o iTerm2 u otra terminal que use.
Mover a su carpeta de perfil de usuario con el comando
~/
. Es una carpeta predeterminada para el.bash_profile
archivo:Escriba
nano .bash_profile
Este comando abrirá el.bash_profile
documento (o lo creará si aún no existe) en el editor de texto más fácil de usar para terminal -nano
.Ahora puede hacer un simple cambio en el archivo. Pegue estas líneas de código para cambiar su indicador de Terminal:
Ahora guarde sus cambios escribiendo
ctrl + o
y presione regresar para guardar. Luego salganano
escribiendoctrl + x
.Ahora necesitamos activar sus cambios. Escriba
source .bash_profile
(o. ~/.bash_profile
) y observe su cambio rápido.En iTerm2
Preferences/Profiles/General/Command
establecido enLogin Shell
ySend text at start
parasource ~/.bash_profile
. Por lo tanto, no necesita hacerlo manualmente después de cada reinicio de macOS.Credenciales: https://natelandau.com/my-mac-osx-bash_profile
fuente
Hice este script .sh para comando
fuente
Como la pregunta no especifica qué shell, aquí está la versión de eshell basada en las respuestas anteriores. Esto va en el archivo alias de eshell, que podría estar en ~ / .emacs.d / eshell / alias. Agregué la primera parte z https://github.com/rupa/z/ que te permite cd rápidamente a un directorio , para que esto se pueda ejecutar sin importar cuál sea su directorio actual.
fuente
Agregue
~/.bash_profile
para agregar, confirmar y presionar con un comando puesto:Uso:
No se necesitan comillas, aunque no puede utilizar punto y coma o paréntesis en los mensajes de confirmación (se permiten comillas simples). Si desea alguno de estos, simplemente ponga comillas dobles en su mensaje, por ejemplo:
Para crear un comentario en su mensaje, haga lo siguiente:
También hay una función para agregar y confirmar de manera similar:
Funciona exactamente de la misma manera que
g
funciona y tiene las mismas restricciones. Solo ponlo en suc
lugar. P.ejTambién puede agregar un alias para empujar al control remoto:
Uso:
Eso equivale a 2 letras,
c
y lasp
usas mientras trabajas con tu repositorio git. O puedes usarg
en lugar para hacerlo todo con una sola letra.Lista completa de alias y funciones: https://gist.github.com/matt360/0c5765d6f0579a5aa74641bc47ae50ac
fuente
A partir de la
lazygit
respuesta, la siguiente solución agrega una verificación de usuario para verificar los cambios antes de presionar. Revertirá los comandos si se cancela. Y todo eso sucederá si y solo si hay cambios en el repositorio local.fuente
Esto es perfecto para la agrupación de comandos.
Comandos de agrupamiento
fuente
Me gusta ejecutar lo siguiente:
fuente
;
debería reemplazarse con&&
en su comando, ya que el último ejecutará elgit push
comando solo si no hay ningún error en los comandos anteriores.Encontré que este
yolo
alias es increíble incluso enviar un comentario aleatorio al commit mientras soy flojo. Funciona muy bien fuera de la caja, así que lo hagogit yolo
y todos mis cambios se envían automáticamente.fuente