Quiero saber si hay una forma de establecer una bandera por defecto para el comando git. Específicamente, quiero configurar la --abbrev-commit
bandera para que al ejecutar git log
, quiera ejecutar git log --abbrev-commit
.
A diferencia de la pregunta " ¿hay alguna forma de establecer una bandera por defecto para un comando git? ", Aparentemente no hay una bandera de configuración para agregar --abbrev-commit a git log. Además, el manual de git establece que no puedo crear un alias: "Para evitar confusiones y problemas con el uso del script, se ignoran los alias que ocultan los comandos de git existentes".
Mi tercera opción es inventar un nuevo alias como glog=log --abbrev-commit
en mi archivo .gitconfig. Pero prefiero no inventar mi propio DSL con nuevos comandos.
¿Hay otra forma de lograrlo para que la abbrev-commit
bandera esté configurada por defecto?
Respuestas:
Desde la versión 1.7.6 de git, git config ha obtenido una opción log.abbrevCommit que se puede establecer en true. Por lo tanto, la respuesta es actualizar a al menos 1.7.6 (el actual al momento de escribir este artículo es 1.7.11.4) y usar:
fuente
git config --help
ogit help config
para obtener la documentación correspondiente a su instalación .Puede usar un formato personalizado para tener una
git log
mímica--abbrev-commit
por defecto:fuente
log.abbrevCommit
configuración afectó a otros formatos más detallados, lo que no me gustó. Además, utilícelo%C(auto)%h %s
para obtener el formato en línea normal con coloración automática. Solíagit config --global format.pretty "%C(auto)%h %d %s"
porque quería decorado oneline como mi "default"No hay un mecanismo genérico en git para establecer argumentos predeterminados para los comandos.
Puede usar los alias de git para definir un nuevo comando con los argumentos requeridos:
Entonces puedes correr
git lg
.Algunos comandos también tienen opciones de configuración para cambiar su comportamiento.
fuente
git lg
perogit log
VonC ya ha insinuado un envoltorio de concha en su respuesta; aquí está mi implementación Bash de dicha envoltura. Si pones esto, por ejemplo, en tu
.bashrc
, tu shell interactivo admitirá la anulación de los comandos integrados de Git, así como los alias en mayúsculas.Luego puede anular
git log
colocando un script llamadogit-log
en algún lugar de su RUTA:fuente
Tengo un problema similar (muchas de las opciones predeterminadas para los comandos de Git son tontas). Este es mi enfoque. Cree un script llamado 'grit' (o lo que sea) en su camino, de la siguiente manera:
Muy sencillo de leer y mantener, en caso de que necesite compartirlo con no expertos en Bash.
fuente
git
mediante la adición de una primera línea de obtener la ruta de comandos real:thegit=`/usr/bin/which git`
. Y añadí una opción de cancelar las anulaciones con una x antes de que el comando comogit x log ...
:if [ "$cmd" = "x" ]; then; $thegit $@
.Me gusta el
git log --oneline
formato. Para obtenerlo como predeterminado, usegit config --global format.pretty oneline
Crédito: https://willi.am/blog/2015/02/19/customize-your-git-log-format/
fuente
Todas las utilidades que utilizamos (svn, maven, git, ...) siempre están encapsuladas en un .bat (en Windows o .sh en Unix), para ofrecer a nuestros desarrolladores un directorio para agregar a su ruta.
Si git está encapsulado en un script contenedor, entonces ... todo es posible.
Pero esa sigue siendo una solución vinculada a la configuración del usuario, no vinculada a Git en sí o al repositorio de git.
fuente