Comment imprimer une liste de mes alias git, c'est-à-dire quelque chose d’analogue à la bash `` commande ?
Réponses
Trop de publicités?Cette réponse s'appuie sur la réponse par johnny. Cela s'applique si vous n'êtes pas à l'aide de git-alias
de git-extras
.
Sur Linux, exécutez la fois:
git config --global alias.alias "! git config --get-regexp ^alias\. | sed -e s/^alias\.// -e s/\ /\ =\ /"
Cela va créer un permanent git alias nommé alias
qui est stocké dans votre ~/.gitconfig
le fichier. Utilisation de la liste de tous vos alias git, dans presque le même format qu'ils sont dans l' ~/.gitconfig
le fichier. Pour l'utiliser, tapez:
$ git alias
lba = log --graph --decorate --name-status --all
alias = ! git config --get-regexp ^alias\. | sed -e s/^alias\.// -e s/\ /\ =\ /
Les options suivantes considérations s'appliquent:
Pour éviter l'alias
alias
d'obtenir la liste ci-dessus, ajouter| grep -v ^'alias '
juste avant la fermeture de guillemets doubles. Je ne le recommande pas pour les utilisateurs de Linux afin qu'ils n'oublient pas que la commandealias
n'est qu'un alias et n'est pas une fonctionnalité de git.Pour trier la liste des alias, append
| sort
juste avant la fermeture de guillemets doubles. Alternativement, vous pouvez garder les alias en~/.gitconfig
triés.Pour ajouter l'alias comme un système à l'échelle de l'alias, remplacez -
--global
(pour l'utilisateur courant) avec--system
(pour tous les utilisateurs).
La suite fonctionne sous Linux, MacOSX et Windows (avec msysgit).
Utiliser git la pour afficher les alias .gitconfig
N'ai-je entendu "bash scripting"? ;)
À propos de la "pas besoin" dans un commentaire ci-dessus, en gros, j'ai créé une page de man comme aperçu de mon alias. Pourquoi tout ce bruit? N'est-ce pas complète overkill?
Lire la suite...
J'ai mis les commandes comme ceci dans mon .gitconfig, séparés comme TAB=TAB:
[alias]
alias1 = foo -x -y --z-option
alias2 = bar -y --z-option --set-something
et simplement défini un alias de la commande grep la TAB= partie de l'alias définis. (Toutes les autres options n'ont pas les onglets avant et après le " = " dans leur définition, juste des espaces.)
Commentaires n'est pas ajouté à un alias ont également un ONGLET===== ajoutés, de sorte qu'ils sont présentés après grepping.
Pour mieux le voir je suis tuyauterie, le grep de sortie en moins, comme ceci:
version de base: (noir/blanc)
#.gitconfig
[alias]
# use 'git h <command>' for help, use 'git la' to list aliases =====
h = help #... <git-command-in-question>
la = "!grep '\t=' ~/.gitconfig | less"
Le '\t=
' partie correspond à l'ONGLET=.
Pour avoir une meilleure vue d'ensemble de ce que l'alias que j'ai, et depuis que j'utilise la fête de la console, j'ai coloré de la sortie avec le terminal de couleurs:
- tous les '=' sont imprimés en rouge
- tous les '#' sont imprimés en vert
version avancée: (en couleur)
la = "!grep '\t=' ~/.gitconfig | sed -e 's/=/^[[0;31m=^[[0m/g' | sed -e 's/#.*/^[[0;32m&^[[0m/g' | less -R"
Fondamentalement le même que ci-dessus, juste sed utilisation est ajouté pour obtenir les codes de la couleur dans la sortie.
L' -R
drapeau de moins est nécessaire pour obtenir les couleurs en moins.
(J'ai récemment découvert que de longues commandes avec une barre de défilement sous leur fenêtre ne sont pas affichés correctement sur les appareils mobiles: Ils texte est coupé et la barre de défilement est tout simplement absent. Cela pourrait être le cas avec le dernier extrait de code ici, gardez cela à l'esprit lorsque l'on regarde des extraits de code ici, tandis que sur l'aller.)
Pourquoi obtenir une telle magie fonctionne?
J'ai comme un demi-mile de l'alias, adapté à mes besoins.
Aussi certains d'entre eux changent au fil du temps, alors, après tout la meilleure idée d'avoir une liste à jour à la main est l'analyse de la .gitconfig.
Un *court* extrait de mon .gitconfig alias:
# choose =====
a = add #...
aa = add .
ai = add -i
# unchoose =====
rm = rm -r #... unversion and delete
rmc = rm -r --cached #... unversion, but leave in working copy
# do =====
c = commit -m #...
fc = commit -am "fastcommit"
ca = commit -am #...
mc = commit # think 'message-commit'
mca = commit -a
cam = commit --amend -C HEAD # update last commit
# undo =====
r = reset --hard HEAD
rv = revert HEAD
Dans mon linux ou mac postes de travail aussi plus alias existe pas dans la .bashrc, un peu comme:
#.bashrc
alias g="git"
alias gh="git h"
alias gla="git la"
function gc { git c "$*" } # this is handy, just type 'gc this is my commitmessage' at prompt
De cette façon, sans avoir à taper git help submodule
, pas besoin d' git h submodule
, juste gh submodule
est tout ce qui est nécessaire pour obtenir de l'aide. C'est juste que certains personnages, mais combien de fois avez-vous taper?
J'utilise tous les suivants, bien sûr, qu'avec les raccourcis clavier...
- ajouter
- s'engager
- commit --amend
- reset --hard HEAD
- pousser
- fetch
- rebase
- la caisse
- branche
- show-branche (dans beaucoup de variations)
- shortlog
- reflog
- diff (en variations)
- journal (dans beaucoup de variations)
- statut
- montrer
- notes
- ...
Ce fut seulement à partir du haut de ma tête.
J'ai souvent à l'utilisation de git sans interface graphique, car beaucoup de commandes git ne sont pas correctement mis en place dans les interfaces graphiques. Mais chaque fois que je les ai mis à utiliser, il est la plupart du temps, de la même manière.
Sur la mise en œuvre " de la partie mentionnée dans le dernier paragraphe:
Je n'ai pas encore trouvé quelque chose qui se compare à cet dans une interface graphique:sba = show-branch --color=always -a --more=10 --no-name
- afficher tous les locaux et les bureaux distants, ainsi que les changements qu'ils ont en euxccm = "!git reset --soft HEAD~ && git commit"
- modifier le dernier message de commit
À partir d'un point de vue qui est plus simple:
Combien de fois avez-vous tapez git add .
ou git commit -am "..."
? Sans compter le reste...
Faire les choses à travailler comme git aa
ou git ca "..."
dans windows,
ou avec bash alias gaa
/g aa
ou gca "..."
/g ca "..."
sous linux et sur mac...
Pour mes besoins, il semblait une chose intelligente à faire, pour personnaliser les commandes git comme ça...
... et pour une utilisation plus facile j'ai juste aidé moi-même à moindre commandes, alors je n'ai pas à consulter les pages de manuel à chaque fois. Les commandes sont prédéfinies et en les regardant c'est aussi facile que possible.
Je veux dire, nous sommes des programmeurs, après tout? Faire les choses à travailler comme nous avons besoin d'eux est notre travail.
Voici une capture d'écran supplémentaires, cela fonctionne dans Windows: