Buscar..


Alias ​​simples

Hay dos formas de crear alias en Git:

  • con el archivo ~/.gitconfig :
[alias]
    ci = commit
    st = status
    co = checkout
  • con la línea de comando:
 git config --global alias.ci "commit"
 git config --global alias.st "status"
 git config --global alias.co "checkout"

Después de crear el alias, escriba:

  • git ci lugar de git commit ,
  • git st lugar de git status ,
  • git co lugar de git checkout .

Al igual que con los comandos regulares de git, los alias se pueden usar junto a los argumentos. Por ejemplo:

 git ci -m "Commit message..."
 git co -b feature-42

Listar / buscar alias existentes

Puedes listar los alias de git existentes usando --get-regexp :

$ git config --get-regexp '^alias\.'

Buscando alias

Para buscar alias , agregue lo siguiente a su .gitconfig en [alias] :

aliases = !git config --list | grep ^alias\\. | cut -c 7- | grep -Ei --color \"$1\" "#"

Entonces tú puedes:

  • git aliases - mostrar TODOS los alias
  • git aliases commit - solo alias que contienen "commit"

Alias ​​avanzados

Git te permite usar comandos que no sean de git y sintaxis de shell sh completa en tus alias si los prefieres con ! .

En su archivo ~/.gitconfig :

[alias]
    temp = !git add -A && git commit -m "Temp"

El hecho de que la sintaxis de shell completa esté disponible en estos alias con prefijo también significa que puede usar funciones de shell para construir alias más complejos, como los que utilizan argumentos de línea de comandos:

[alias]
    ignore = "!f() { echo $1 >> .gitignore; }; f"

El alias anterior define la función f , luego la ejecuta con cualquier argumento que pase al alias. Entonces, ejecutar git ignore .tmp/ agregaría .tmp/ a su archivo .gitignore .

De hecho, este patrón es tan útil que Git define variables de $1 , $2 , etc. para usted, por lo que ni siquiera tiene que definir una función especial para ello. (Pero tenga en cuenta que Git también agregará los argumentos de todos modos, incluso si accede a través de estas variables, por lo que es posible que desee agregar un comando ficticio al final).

Tenga en cuenta que los alias prefijados con ! De esta manera, se ejecutan desde el directorio raíz de su git checkout, incluso si su directorio actual está más profundo en el árbol. Esta puede ser una forma útil de ejecutar un comando desde la raíz sin tener que cd allí explícitamente.

[alias]
    ignore = "! echo $1 >> .gitignore"

Ignorar temporalmente los archivos rastreados

Para marcar temporalmente un archivo como ignorado (pasar archivo como parámetro a alias) - escriba:

unwatch = update-index --assume-unchanged

Para volver a iniciar el seguimiento del archivo, escriba:

watch = update-index --no-assume-unchanged

Para enumerar todos los archivos que se han ignorado temporalmente, escriba:

unwatched = "!git ls-files -v | grep '^[[:lower:]]'"

Para borrar la lista no vista - escriba:

watchall = "!git unwatched | xargs -L 1 -I % sh -c 'git watch `echo % | cut -c 2-`'"

Ejemplo de uso de los alias:

git unwatch my_file.txt
git watch my_file.txt
git unwatched
git watchall

Mostrar registro bonito con el gráfico de la rama

[alias]
  logp=log --pretty=format:'%h %ad | %s%d [%an]' --graph --date=short

  lg =  log --graph --date-order --first-parent \
     --pretty=format:'%C(auto)%h%Creset %C(auto)%d%Creset %s %C(green)(%ad) %C(bold cyan)<%an>%Creset'
  lgb = log --graph --date-order --branches --first-parent \                      
     --pretty=format:'%C(auto)%h%Creset %C(auto)%d%Creset %s %C(green)(%ad) %C(bold cyan)<%an>%Creset'
 lga = log --graph --date-order --all \                                          
   --pretty=format:'%C(auto)%h%Creset %C(auto)%d%Creset %s %C(green)(%ad) %C(bold cyan)<%an>%Creset'

Aquí una explicación de las opciones y el marcador de posición utilizados en el formato --pretty (la lista exhaustiva está disponible con el git help log )

--graph - dibuja el árbol de compromiso

--date-order - usa la orden de marca de tiempo de confirmación cuando sea posible

--first-parent - sigue solo al primer padre en el nodo de combinación.

--ramas: muestra todas las sucursales locales (de forma predeterminada, solo se muestra la rama actual)

--todos - mostrar todas las sucursales locales y remotas

% h - valor hash para commit (abreviado)

% ad - Sello de fecha (autor)

% an - Nombre de usuario del autor

% an - cometer nombre de usuario

% C (automático): para usar los colores definidos en la sección [color]

% Creset - para restablecer el color

% d --decorate (nombres de rama y etiqueta)

% s - mensaje de confirmación

% ad - fecha del autor (seguirá la directiva --date) (y no la fecha del comitente)

% an - nombre del autor (puede ser% cn para el nombre del comitente)

Actualizando el código manteniendo un historial lineal.

A veces necesita mantener un historial lineal (no ramificado) de sus confirmaciones de código. Si está trabajando en una sucursal por un tiempo, esto puede ser complicado si tiene que hacer un git pull regular, ya que eso registrará una fusión con el flujo ascendente.

[alias]
  up = pull --rebase

Esto se actualizará con su fuente en sentido ascendente, y luego volverá a aplicar cualquier trabajo que no haya presionado sobre lo que haya bajado.

Usar:

git up

Ver qué archivos están siendo ignorados por su configuración .gitignore

[ alias ]

    ignored = ! git ls-files --others --ignored --exclude-standard --directory \
            && git ls-files --others -i --exclude-standard

Muestra una línea por archivo, por lo que puede grep (solo directorios):

$ git ignored | grep '/$'
.yardoc/
doc/

O contar:

~$ git ignored | wc -l
199811                 # oops, my home directory is getting crowded

Unstage archivos en escena

Normalmente, para eliminar los archivos que se preparan para ser confirmados usando el commit de git reset , reset tiene muchas funciones dependiendo de los argumentos proporcionados. Para eliminar completamente el escenario de todos los archivos almacenados, podemos hacer uso de los alias de git para crear un nuevo alias que use reset pero ahora no necesitamos recordar proporcionar los argumentos correctos para reset .

git config --global alias.unstage "reset --"

Ahora, en cualquier momento que desee desestabilizar archivos de etapas, escriba git unstage y git unstage listo para comenzar .



Modified text is an extract of the original Stack Overflow Documentation
Licenciado bajo CC BY-SA 3.0
No afiliado a Stack Overflow