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 branch
Vous 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 pourmy-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 aveccolumn
commande et remplacez le point-virgule dans la sortie afin que les éléments soient bien disposés.
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 mbs
mais 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 banana
mais 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!
À 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.