Aller au contenu

D’autres super alias pour Git

Branches

Dans le dernier article de cette série, Super alias GitNous avons examiné quelques excellents alias pour Git. Cependant, le vrai La puissance des alias Git provient de l’écriture de scripts personnalisés. Ceux-ci vous permettent de créer des commandes Git qu’il peut faire n’importe quoi Peux-tu imaginer.

Dans cet article, je vais vous montrer comment vous pouvez créer des alias de script à l’aide de Git. Nous allons jeter un œil à plusieurs excellents scripts Git que vous pouvez utiliser Très utile Cela vous fera gagner beaucoup de temps.

Alias ​​de texte

Nous utiliserons Bash dans nos scripts. Bash est moche, mais il fonctionne à peu près n’importe où. Pour vos scripts, vous pouvez utiliser n’importe quel langage de script que vous voulez.

Si vous n’êtes pas familier avec les scripts Bash, Ne pas paniquer! Bien qu’une partie de la grammaire puisse sembler géniale, vous pouvez souvent vous en sortir. (Ce n’est pas quelque chose que vous entendriez normalement dans un article de codage, n’est-ce pas ?) Je recommande de lire Apprendre Bash en Y Minutes Et vous faites défiler Google ou Stack Overflow à la recherche de tout ce qui n’a pas de sens.

La première étape consiste à créer un fichier pour votre script. J’aime stocker ces fichiers dans Dotfile’s bin répertoire, mais vous pouvez le placer où vous voulez sur votre ordinateur. Assurez-vous simplement que c’est un endroit facile à retenir.

touch bin/git/git-example

Ensuite, vous devrez ajouter des modèles passe-partout en haut de votre script.

#!/usr/bin/env bash

set -euo pipefail

La première ligne s’appelle cabane), et indique à votre ordinateur que le fichier est un script qui doit être exécuté avec Bash. Ce sélecteur exécute le script à l’aide de Bash. Pour utiliser une autre langue, remplacez bash Pour autre chose, comme ruby ou alors python3.

La deuxième ligne indique à bash de quitter s’il y a des erreurs, des variables indéfinies ou des erreurs de pipeline. Je ne sais pas pourquoi ce n’est pas la valeur par défaut dans Bash, mais au moins c’est facile à configurer avec cette ligne.

Vous pouvez exécuter le script tel quel avec (bash bin/git/git-example), mais qui a le temps d’écrire bash Chaque fois qu’ils veulent exécuter quelque chose? Au lieu de cela, rendez votre script exécutable.

chmod +x bin/git/git-example

Vous pouvez maintenant exécuter votre propre script sans avoir besoin d’un préréglage bash à lui (par ex. bin/git/git-example).

Enfin, vous devez ajouter votre script aux alias Git. Remplacez votre chemin de script ci-dessous.

[alias]
  example = "!$HOME/.dotfiles/bin/git/git-example"

c’est ça! Maintenant tu peux courir git example Pour exécuter un script qui ne fait rien !

Liste de toutes les succursales

Par défaut, lorsque git branchVous obtenez les branches que vous avez stockées localement. Mais que faire si vous voulez voir tout le monde De quelles succursales disposez-vous ? Vous pouvez y parvenir en ajoutant --all Drapeau pour vos succursales.

git branch --all

J’aime compiler ceci dans un fichier git-branches script et ajoutez-y des plugins.

#!/usr/bin/env bash

set -euo pipefail

# Only output color if the command isn't being piped.
if [ -t 1 ]; then
  COLOR="always"
else
  COLOR="auto"
fi

git branch \
  --all \
  --color="$COLOR" \
  --sort=authordate \
  --format="%(color:blue)%(authordate:relative);%(color:red)%(authorname);%(color:white)%(color:bold)%(refname:short)" \
  "$@" \
  | column -s ";" -t

N’oubliez pas de l’enregistrer dans un fichier et de le rendre exécutable !

Cela fait plusieurs choses :

  • Il ne produit la couleur que lorsque le script est exécuté directement à partir de la CLI. Cela vous permet d’utiliser git-branches dans d’autres textes.
  • Trie les branches au fur et à mesure de leur création. Cela place les branches les plus récentes en bas.
  • Permet de passer des arguments supplémentaires à branch commande utilisant $@ variable bas. Cela sera utile pour my-branches commande que nous ajouterons ensuite.
  • Cela ajoute une belle coordination à vos mèches. Par exemple, c’est pourquoi dans mon pays branches La sortie apparaît dans les dotfiles de mon dépôt. Cela fonctionne en utilisant une astuce avec column commande et remplacez le point-virgule dans la sortie afin que les éléments soient bien disposés.
Branches

Ajoutez un alias à cette commande (et un court alias si vous voulez de la brièveté).

[alias]
  branches = "!$HOME/.dotfiles/bin/git/git-branches"
  bs = branches

Vous êtes prêt! Vous pouvez maintenant courir git branches (ou juste git bs) pour filtrer toutes les branches disponibles.

Liste de mes succursales

le branches La commande que vous venez d’ajouter est très utile, mais lorsque vous travaillez avec une grande équipe, il peut être pénible de voir les branches de chacun. J’aime créer un deuxième alias qui inclut uniquement les ramifications. Vous pouvez facilement accomplir cela avec un nouveau texte.

#!/usr/bin/env bash

set -euo pipefail

# Only output color if the command isn't being piped.
if [ -t 1 ]; then
  COLOR="always"
else
  COLOR="auto"
fi

"$HOME/.dotfiles/bin/git/git-branches" --color="$COLOR" | grep "$(git config user.name)"

Ce script fonctionne git-branches Et puis les tubes de sortie à travers grep pour le filtrer jusqu’aux branches de l’utilisateur actuel.

Créez des alias pour ces deux commandes.

[alias]
  my-branches = "!git branches | grep -i '$()'"
  my-bs = my-branches

Toi pourrais Réduisez l’alias court à git mbsmais je ne le fais pas parce qu’écrire git my-bs Me fait sourire à chaque fois que je l’allume.

Cachette par étapes

Git contient un fichier git stash commande, ce qui est utile pour mettre le travail de côté pour plus tard. Par défaut, il ne masque que les fichiers suivis. Si vous avez de nouveaux fichiers dans lesquels vous souhaitez stocker de nouveaux fichiers, vous devez inclure un fichier --include-untracked connaissance ou utilisation git stash --all.

Que faites-vous si vous voulez juste planquer quelque de vos fichiers ? La manière intégrée de le faire est Git funky.

Disons que vous voulez stocker des fichiers apple Et le bananamais reste cherry Et le date. Pour ce faire, vous ajoutez des fichiers Non Vous voulez le stocker dans l’index, puis exécutez git stash --keep-index --include-untracked.

git add cherry date
git stash --keep-index --include-untracked

C’est bizarre parce que c’est un fichier Plutôt l’inverse quelle direction git commit Travaux. De plus, vous avez maintenant deux fichiers flottants dans votre index qu’il vous faudra exécuter git restore emploi.

Pour résoudre ce problème, créons un fichier git stash-staged ordre.

#!/usr/bin/env bash

set -euo pipefail

git diff --staged --name-only | xargs git stash push "$@" --

c’est ça! Cette commande est utilisée git diff --staged --name-only Imprime une liste de tous les fichiers de l’index. Ensuite, vous dirigez ces arguments vers xargs. xargs Divise les arguments avec des retours à la ligne et les passe à git stash --.

Ajoutez votre pseudo, et le tour est joué !

surnoms

Vous avez sûrement écrit beaucoup de pseudonymes ces derniers temps. Ne serait-ce pas bien s’il y avait une commande que nous pourrions exécuter pour répertorier tous les alias que vous avez créés ? On peut ajouter un surnom à ça !

[alias]
  aliases = "config --get-regexp alias"

C’est tout pour le moment!

c’est ça! Nous espérons que vous avez apprécié cet article et que vous ferez bon usage des alias ici.

Avez-vous un alias Git préféré ? Faites-le moi savoir dans les commentaires!

Arbuste Landon

À propos de l’arbuste Landon

Landon est un développeur, designer et entrepreneur basé à Kansas City. Il est l’auteur d’un livre Démontage Flexbox. Il est passionné par la création d’applications simples que les gens aiment utiliser.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *