tag repositorio que example crear git logging

repositorio - git push tag



Establecer git flags por defecto en los comandos (7)

Quiero saber si hay una manera de establecer un indicador por defecto para el comando git. Específicamente, quiero establecer el --abbrev-commit para que cuando ejecute git log , quiero ejecutar git log --abbrev-commit .

A diferencia de la pregunta " ¿hay alguna forma de establecer un indicador por defecto para un comando git? ", Aparentemente no hay un indicador 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 de scripts, 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 propia DSL con nuevos comandos.

¿Hay alguna otra forma de lograrlo para que el indicador de abbrev-commit esté establecido por defecto?


Cada utilidad que utilizamos (svn, maven, git, ...) siempre se encapsula en .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 de envoltura, entonces ... todo es posible.

Pero eso sigue siendo una solución vinculada a la configuración del usuario, no vinculada a Git ni a Git Repo.


Desde la versión 1.7.6 de git, git config ha obtenido una opción log.abbrevCommit que se puede establecer en verdadero. Por lo tanto, la respuesta es la actualización a al menos 1.7.6 (actual a partir de este escrito es 1.7.11.4) y uso:

git config --global log.abbrevCommit true



No hay un mecanismo genérico en git para establecer los argumentos predeterminados para los comandos.

Puede usar los alias de git para definir un nuevo comando con los argumentos requeridos:

git config alias.lg "log --oneline"

Entonces puedes ejecutar git lg .

Algunos comandos también tienen configuraciones para cambiar su comportamiento.


Puede usar un formato personalizado para tener git log mimic --abbrev-commit de forma predeterminada:

git config format.pretty "format:%h %s"


Tengo un problema similar (muchas de las opciones predeterminadas para los comandos de Git son tontas). Aquí está mi enfoque. Cree un script llamado ''grit'' (o lo que sea) en su ruta, de la siguiente manera:

#!/bin/bash cmd=$1 shift 1 if [ "$cmd" = "" ]; then git elif [ $cmd = "log" ]; then git log --abbrev-commit $@ elif [ $cmd = "branch" ]; then git branch -v $@ elif [ $cmd = "remote" ]; then git remote -v $@ else git $cmd $@ fi

Muy sencillo de leer y mantener, en caso de que necesite compartirlo con Bash no expertos.


VonC ya ha insinuado una envoltura de caparazón en su respuesta; aquí está mi implementación Bash de tal envoltorio. Si pones esto, por ejemplo, en tu .bashrc , tu caparazón interactivo soportará la anulación de los comandos incorporados de Git, así como los alias en mayúsculas.

# Git supports aliases defined in .gitconfig, but you cannot override Git # builtins (e.g. "git log") by putting an executable "git-log" somewhere in the # PATH. Also, git aliases are case-insensitive, but case can be useful to create # a negated command (gf = grep --files-with-matches; gF = grep # --files-without-match). As a workaround, translate "X" to "-x". git() { typeset -r gitAlias="git-$1" if ''which'' "$gitAlias" >/dev/null 2>&1; then shift "$gitAlias" "$@" elif [[ "$1" =~ [A-Z] ]]; then # Translate "X" to "-x" to enable aliases with uppercase letters. translatedAlias=$(echo "$1" | sed -e ''s/[A-Z]/-/l/0/g'') shift "$(which git)" "$translatedAlias" "$@" else "$(which git)" "$@" fi }

A continuación, puede anular el git log colocando un script llamado git-log en algún lugar de su RUTA:

#!/bin/sh git log --abbrev-commit "$@"