251 votes

Git - Alias Plusieurs Commandes et les Paramètres

Je suis en train de créer un alias qui utilise à la fois de multiples commandes git et des paramètres positionnels. Il y a stackoverflow pages pour chacun, et il semblerait douloureusement évident de faire les deux, mais je vais avoir des ennuis.

Comme exemple, je veux passer à la branche foo et d'effectuer un état. Donc, dans mon .gitconfig, j'ai:

  [alias] 
     chs = !sh -c 'git checkout $0 && git status'

ce qui ne fonctionne pas. Alors que quelque chose de ce genre de travail.

chs = !sh -c 'git checkout $0'

echoes = !sh -c 'echo hi && echo bye

Aucune information serait appréciée.

Merci!

203voto

Olivier Verdier Points 12332

Cela fonctionne (testé avec zsh et bash):

[alias] chs = !git checkout $1 && git status

136voto

Brondahl Points 75

Apolgies pour les nécro-ing à la question, mais j'ai maintenant résolu le problème restant avec la réponse primaire (résolu pour Windows batch / msysgit bash, ne connaissent pas d'autres environnements)

Olivier Verdier et Kevin Ballard ont dit

[alias] chs = !git checkout $1 && git status

presque fonctionne, mais donne une spurios supplémentaire d'insertion de l'argument ... git chs demo -> git checkout demo && git status demo

Mais si vous ajoutez && : à la fin de votre pseudo, puis le fallacieux argument est consommé dans un emplacement de la balise.

Donc, [alias] chs = !git checkout $1 && git status && :

donne le bon de sortie ... git chs demo -> git checkout demo && git status

95voto

Kevin Ballard Points 88866

Vous pouvez définir une fonction shell.

[alias] chs = !f(){ git checkout "$1" && git status; };f

28voto

FractalSpace Points 739
[alias]
chs = !git branch && git status

7voto

brocksamson Points 128

Essayez celui-ci:

[alias]
    chs = "!sh -c 'git checkout \"$0\" && git status'"

L'appeler comme ceci: git chs master

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X