Question Comment puis-je alias de commandes dans git?


J'ai vu un screencast où quelqu'un avait eu

git st
git ci

travailler. Quand je le fais, je reçois une erreur me demandant si je voulais dire autre chose.
Étant un git newb, j'ai besoin de savoir ce que vous devez faire pour que cela soit fait?


486
2018-03-31 14:31


origine


Réponses:


Fondamentalement, vous avez juste besoin d'ajouter des lignes à ~/.gitconfig

[alias]
    st = status
    ci = commit -v

Ou vous pouvez utiliser la commande git config alias:

$ git config --global alias.st status 

Sous Unix, utilisez des guillemets simples si l'alias a un espace:

$ git config --global alias.ci 'commit -v'

Sur Windows, utilisez des guillemets doubles si l'alias a un espace ou un argument de ligne de commande:

c:\dev> git config --global alias.ci "commit -v"

La commande alias accepte même les fonctions en tant que paramètres. Jeter un coup d'œil à alias.


761
2018-03-31 14:33



Comme d'autres l'ont dit, la façon appropriée d'ajouter des alias git est dans votre monde .gitconfig fichier soit en éditant ~/.gitconfig ou en utilisant le git config --global alias.<alias> <git-command> commander

Voici une copie de la section alias de mon ~/.gitconfig fichier:

[alias]
    st = status
    ci = commit
    co = checkout
    br = branch
    unstage = reset HEAD --
    last = log -1 HEAD

De plus, si vous utilisez bash, je vous recommande de configurer l’achèvement de bash en copiant git-completion.bash à votre répertoire personnel et l'approvisionnement de votre ~/.bashrc. (Je crois que j'ai appris à ce sujet Pro Git livre en ligne.) Sur Mac OS X, j'ai accompli ceci avec les commandes suivantes:

# Copy git-completion.bash to home directory
cp usr/local/git/contrib/completion/git-completion.bash ~/

# Add the following lines to ~/.bashrc
if [ -x /usr/local/git/bin/git ]; then
    source ~/.git-completion.bash
fi

Remarque: La complétion de bash fonctionnera non seulement pour les commandes git standard mais aussi pour vos alias git.

Enfin, pour vraiment réduire les frappes, j'ai ajouté ce qui suit à mon ~/.bash_aliases fichier, qui provient de ~/.bashrc:

alias gst='git status'
alias gl='git pull'
alias gp='git push'
alias gd='git diff | mate'
alias gau='git add --update'
alias gc='git commit -v'
alias gca='git commit -v -a'
alias gb='git branch'
alias gba='git branch -a'
alias gco='git checkout'
alias gcob='git checkout -b'
alias gcot='git checkout -t'
alias gcotb='git checkout --track -b'
alias glog='git log'
alias glogp='git log --pretty=format:"%h %s" --graph'

143
2018-03-31 15:19



Je pense que le gitconfig le plus utile est comme ça, nous utilisons toujours la fonction 20% dans git, vous pouvez essayer le "g ll", c'est incroyable, les détails:

[user]
    name = my name
    email = me@example.com
[core]  
    editor = vi 
[alias]
    aa = add --all
    bv = branch -vv
    ba = branch -ra
    bd = branch -d
    ca = commit --amend
    cb = checkout -b
    cm = commit -a --amend -C HEAD
    ci = commit -a -v
    co = checkout
    di = diff
    ll = log --pretty=format:"%C(yellow)%h%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --numstat
    ld = log --pretty=format:"%C(yellow)%h\\ %C(green)%ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short --graph
    ls = log --pretty=format:"%C(green)%h\\ %C(yellow)[%ad]%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=relative
    mm = merge --no-ff
    st = status --short --branch
    tg = tag -a 
    pu = push --tags
    un = reset --hard HEAD  
    uh = reset --hard HEAD^
   [color]  
    diff = auto  
    status = auto  
    branch = auto 
   [branch]  
    autosetuprebase = always

53
2018-02-20 14:12



Vous avez besoin de git config alias commander. Exécutez les opérations suivantes dans un référentiel Git:

git config alias.ci commit

Pour l'alias global:

git config --global alias.ci commit

16
2018-03-31 14:34



Cela va créer un alias st pour status:

git config --add alias.st status


7
2018-03-31 14:34



Cela a fonctionné pour moi:

bco = "!f(){ git branch ${1} && git checkout ${1}; };f"

sur:

$ git --version

git version 1.7.7.5 (Apple Git-26)

7
2017-09-24 18:08



Les raccourcis suivants sont les raccourcis de 4 gits ou les alias que vous pouvez utiliser pour gagner du temps.

Ouvrez la ligne de commande et tapez-les ci-dessous 4 commandes et utilisez les raccourcis après.

git config --global alias.co checkout  
git config --global alias.ci commit    
git config --global alias.st status    
git config --global alias.br branch  

Maintenant, testez-les!

$ git co              # use git co instead of git checkout
$ git ci              # use git ci instead of git commit
$ git st              # use git st instead of git status
$ git br              # use git br instead of git branch

5
2018-03-03 05:23



Vous pouvez alias les commandes git et non-git. Il semble que ceci ait été ajouté dans la version 1.5. Un extrait du git config --help page sur la version 2.5.4 sur mon Mac montre:

Si l'extension alias est précédée d'un point d'exclamation, elle sera traitée comme une commande shell.

Par exemple, dans votre monde global .gitconfig fichier que vous pourriez avoir:

[alias]
    st = status
    hi = !echo 'hello'

Et ensuite les exécuter:

$ git hi
hello
$ git st
On branch master

...

5
2018-02-04 17:38



$ git mise à jour
git: 'update' n'est pas une commande git. Voir 'git --help'.

Vouliez-vous dire cela?
    update-ref

$ git config --global alias.update 'pull -v'

$ git mise à jour
De git: //git.kernel.org/pub/scm/git/git
 = [à jour] html -> origin / html
 = [à jour] maint -> origine / maint
 = [à jour] man -> origin / man
 = [à jour] maître -> origine / maître
 = [à jour] suivant -> origine / suivant
 = [à jour] pu -> origine / pu
 = [à jour] todo -> origine / todo
Déjà à jour.

4
2018-03-31 14:35



Pour ceux qui cherchent à exécuter des commandes shell dans un alias git, par exemple:

$ git pof

Dans mon terminal sera force de pousséela branche actuelle à mon repo d'origine:

[alias]
    pof = !git push origin -f $(git branch | grep \\* | cut -d ' ' -f2)

Où le

$(git branch | grep \\* | cut -d ' ' -f2)

commande renvoie la branche en cours.

C'est donc un raccourci pour taper manuellement le nom de la branche:

git push origin -f <current-branch>

3
2018-04-07 20:00



Juste pour que les alias soient encore plus courts que la méthode git standard mentionnée dans les autres réponses, j'ai créé un paquet npm Mingit (npm install -g mingit) de sorte que la plupart des commandes deviendraient 2 caractères au lieu de 2 mots. Voici les exemples:

g a .                   // git add .
g b other-branch        // git branch other-branch
g c "made some changes" // git commit -m "made some changes"
g co master             // git checkout master
g d                     // git diff
g f                     // git fetch
g i                     // git init 
g m hotfix              // git merge hotfix
g pll                   // git pull
g psh                   // git push
g s                     // git status

et d'autres commandes seraient également courtes. Cela permet également de garder les finitions de bash. Le paquet ajoute une fonction bash à vos fichiers, fonctionne sur osx, linux et windows. En outre, contrairement aux autres alias, il s’agit de pseudonymes git -> g ainsi que le deuxième paramètre.


2
2017-11-17 02:24