J'ai vu un screencast où quelqu'un avait eu
git st
git ci
travailler. Lorsque je le fais, je reçois une erreur en me demandant si je voulais dire autre chose.
Étant un git newb, j'ai besoin de savoir ce que vous devez faire pour y arriver
En gros, il vous suffit 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'
Sous Windows, utilisez les 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. Jetez un coup d'œil à aliases .
Comme d'autres l'ont déjà dit, la manière appropriée d'ajouter des alias git est dans votre fichier global .gitconfig
, soit en éditant ~/.gitconfig
, soit en utilisant la commande git config --global alias.<alias> <git-command>
.
Vous trouverez ci-dessous une copie de la section alias de mon fichier ~/.gitconfig
:
[alias]
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD
De plus, si vous utilisez bash, je vous conseillerais de configurer la complétion de bash en copiant git-completion.bash
dans votre répertoire personnel et en le recherchant à partir de votre ~/.bashrc
. (Je crois que le livre en ligne Pro Git l'a appris.) Sous Mac OS X, j'ai accompli ceci à l'aide des 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: L’achèvement de bash fonctionnera non seulement pour les commandes git standard, mais également pour vos alias git.
Enfin, pour vraiment réduire le nombre de frappes au clavier, j’ai ajouté ce qui suit à mon fichier ~/.bash_aliases
, 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'
Je pense que le plus utile de gitconfig est le suivant: 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 = [email protected]
[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
Vous avez besoin de la commande git config alias
. Exécutez les tâches suivantes dans un référentiel Git:
git config alias.ci commit
Pour un alias global:
git config --global alias.ci commit
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)
Cela créera un alias st
pour status
:
git config --add alias.st status
Vous pouvez alias les commandes git et non-git. Il semble que cela ait été ajouté à la version 1.5. Un extrait de la page git config --help
sur la version 2.5.4 sur mon Mac indique:
Si le développement de l'alias est précédé d'un point d'exclamation, il sera traité comme une commande Shell.
Par exemple, dans votre fichier global .gitconfig
, vous pourriez avoir:
[alias]
st = status
hi = !echo 'hello'
Et puis lancez-les:
$ git hi
hello
$ git st
On branch master
...
Vous trouverez ci-dessous les 4 raccourcis git ou alias que vous pouvez utiliser pour gagner du temps.
Ouvrez la ligne de commande et tapez ces 4 commandes ci-dessous et utilisez les raccourcis suivants.
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
$ git update git: 'update' n'est pas une commande de git. Voir 'git --help' . Vouliez-vous dire cela? update-ref $ git config --global alias.update 'pull -v' $ git update De git: //git.kernel.org/pub/scm/ git/git = [à jour] html -> Origin/html = [à jour] maint -> Origine/maint = [à jour] man -> Origine/man = [à jour] master -> Origin/master = [à jour] suivant -> Origine/suivant = [à jour] pu -> origine/pu = [à jour] todo -> Origine/todo Déjà à jour.
Pour ceux qui cherchent à exécuter des commandes Shell dans un alias git}, par exemple:
$ git pof
Dans mon terminal, Push forcera la branche actuelle sur mon dépôt d'origine:
[alias]
pof = !git Push Origin -f $(git branch | grep \\* | cut -d ' ' -f2)
Où le
$(git branch | grep \\* | cut -d ' ' -f2)
la commande retourne la branche courante.
C'est donc un raccourci pour taper manuellement le nom de la branche:
git Push Origin -f <current-branch>
Vous pouvez définir des alias git personnalisés à l'aide de la configuration de git. Voici la syntaxe:
git config --global alias.<aliasName> "<git command>"
Par exemple, si vous avez besoin d'un alias pour afficher une liste des fichiers en conflit de fusion, exécutez:
git config --global alias.conflicts "diff --name-only --diff-filter=U"
Maintenant, vous pouvez utiliser la commande ci-dessus uniquement en utilisant "conflits":
git conflicts
# same as running: git diff --name-only --diff-filter=U
Juste pour obtenir des alias encore plus courts que le moyen standard de configuration git mentionné dans d’autres réponses, j’ai créé un paquet npm mingit (npm install -g mingit
) afin que la plupart des commandes deviennent deux caractères au lieu de deux. 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 pareillement courtes. Cela permet également de compléter les bash. Le paquet ajoute une fonction bash à vos fichiers de points, fonctionne sur osx, linux et windows. De plus, contrairement aux autres alias, il alias git
-> g
ainsi que le deuxième paramètre.
Ajoutez les lignes suivantes à votre ~/.gitconfig dans votre répertoire personnel
[alias]
# one-line log
l = log --pretty=format:"%C(yellow)%h\\ %ad%Cred%d\\ %Creset%s%Cblue\\ [%cn]" --decorate --date=short
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
a = add
ap = add -p
c = commit --verbose
ca = commit -a --verbose
cm = commit -m
cam = commit -a -m
m = commit --amend --verbose
d = diff
ds = diff --stat
dc = diff --cached
s = status -s
co = checkout
cob = checkout -b
# list branches sorted by last modified
b = "!git for-each-ref --sort='-authordate' --format='%(authordate)%09%(objectname:short)%09%(refname)' refs/heads | sed -e 's-refs/heads/--'"
# list aliases
la = "!git config -l | grep alias | cut -c 7-"
Une fois que cela est fait, vous pouvez faire git a
au lieu de git add
par exemple. La même chose s'applique aux autres commandes sous l'en-tête alias.
Il est donné ici Alias . Même s'il y a d'excellentes réponses ici, j'ai ajouté ceci parce que Il diffère dans windows et linux
J'ai créé l'alias dog
pour afficher le graphique de journal:
git config --global alias.dog "log --oneline --graph --all --decorate"
Et utilisez-le comme suit:
git dog
Vous pouvez également chaîner les commandes si vous utilisez le caractère "!" opérateur pour générer un shell:
aa = !git add -A && git status
Ceci ajoutera tous les fichiers et vous donnera un rapport d’état avec $ git aa
.
Pour un moyen pratique de vérifier vos alias, ajoutez cet alias:
alias = config --get-regexp ^alias\\.
Ensuite, un $ git alias
rapide vous indique vos alias actuels et leur rôle.
Pour moi (j'utilise mac avec terminal) n'a fonctionné que lorsque j'ai ajouté sur .bash_profile et ouvert un autre onglet pour charger le changement:
alias gst="git status"
alias Gd="git diff"
alias gl="git log"
alias gco="git commit"
alias gck="git checkout"
alias gl="git pull"
alias gpom="git pull Origin master"
alias gp="git Push"
alias gb="git branch"
Si vous souhaitez une alternative à l'option ~/.gitconfig
et que vous souhaitez en creuser un peu plus, une autre option consiste à écrire des commandes git entièrement personnalisées en les enveloppant dans un package de nœud global.
Dans votre package.json, vous définissez la commande racine (exemple: gt
), puis vous filtrez les commandes spécifiques pour exécuter les commandes git correctes. Par exemple, git checkout my-branch
pourrait être gt co mybranch
.
Le paquet "christian-git" sur npm utilise cette méthode: https://github.com/alexmacarthur/christian-git
Une autre possibilité pour Windows serait d’avoir un répertoire rempli de fichiers .bat contenant vos raccourcis. Le nom du fichier est le raccourci à utiliser. Ajoutez simplement le répertoire à votre variable d’environnement PATH et vous aurez tous les raccourcis à votre disposition dans la fenêtre de commande.
Par exemple (gc.bat):
git commit -m %1
Ensuite, vous pouvez exécuter la commande suivante dans la console:
gc "changed stuff"
La raison pour laquelle j'ajoute ceci comme réponse est parce que lorsque vous utilisez ceci, vous n'êtes pas limité à git ...
uniquement les commandes.
Capture d'écran PFA de mon fichier .gitconfig
avec les alias ci-dessous
[alias]
cb = checkout branch
pullb = pull main branch