J'ai vu un screencast où quelqu'un avait obtenu
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 y arriver?
J'ai vu un screencast où quelqu'un avait obtenu
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 y arriver?
Réponses:
Fondamentalement, il vous suffit d'ajouter des lignes à ~/.gitconfig
[alias]
st = status
ci = commit -v
Ou vous pouvez utiliser la commande d'alias git config:
$ 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 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 des fonctions comme paramètres. Jetez un œil aux alias .
git config --global
pour placer les alias au ~/.gitconfig
lieu de .git/config
pour votre référentiel actuel.
st
à status -s
(statut court)
'
commegit config --global alias.sr 'svn rebase'
"
au lieu de guillemets simples lors de l'ajout d'une commande avec des espaces, par exemplegit config --global alias.ci "commit -v"
Comme d'autres l'ont dit, la manière appropriée d'ajouter des alias git est dans votre .gitconfig
fichier global soit en modifiant ~/.gitconfig
soit en utilisant la git config --global alias.<alias> <git-command>
commande
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 recommanderais de configurer l'achèvement de bash en copiant git-completion.bash
dans votre répertoire personnel et en le recherchant à partir de votre ~/.bashrc
. (Je crois avoir appris cela à partir du livre en ligne Pro Git .) Sur Mac OS X, j'ai accompli cela 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 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'
~/.bashrc
file?
~/.bashrc
: pour vraiment réduire les frappes. Exactement ce que je cherchais.
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
Vous avez besoin de la git config alias
commande. Exécutez ce qui suit dans un référentiel Git:
git config alias.ci commit
Pour l'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)
git cob
. me rappelle l'été, comme dans le maïs en épi. en fait un grand mot auquel nous ne pensons pas assez ... cob c'est
Voici les 4 raccourcis ou alias que vous pouvez utiliser pour gagner du temps.
Ouvrez la ligne de commande et tapez ces quatre commandes ci-dessous 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
Pour ceux qui cherchent à exécuter des commandes shell dans un alias git , par exemple:
$ git pof
Dans mon terminal poussera forcer la branche actuelle vers mon référentiel d'origine:
[alias]
pof = !git push origin -f $(git branch | grep \\* | cut -d ' ' -f2)
Où le
$(git branch | grep \\* | cut -d ' ' -f2)
retourne la branche courante.
Voici donc un raccourci pour taper manuellement le nom de la branche:
git push origin -f <current-branch>
git push -f origin HEAD
pousser la branche actuelle vers son homologue distant? Aussi, un raccourci pour pousser avec force? Si vous devez pousser la force assez fréquemment pour bénéficier d'un raccourci, quelque chose ne va pas ailleurs dans votre configuration ou votre flux de travail?
!git
par la dernière commande git), mais l'édition manuelle du fichier de configuration a fait l'affaire.
Vous pouvez alias les commandes git et non-git. Il semble que cela ait été ajouté dans la version 1.5. Un extrait de la git config --help
page sur la version 2.5.4 sur mon Mac montre:
Si l'extension d'alias est préfixée d'un point d'exclamation, elle sera traitée comme une commande shell.
Par exemple, dans votre .gitconfig
fichier global , vous pourriez avoir:
[alias]
st = status
hi = !echo 'hello'
Et puis exécutez-les:
$ git hi
hello
$ git st
On branch master
...
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 cela fait, vous pouvez le faire git a
au lieu de git add
par exemple. La même chose s'applique aux autres commandes sous le titre d'alias.
$ git update 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 update Depuis git: //git.kernel.org/pub/scm/git/git = [à jour] html -> origine / html = [à jour] maint -> origine / maint = [à jour] homme -> origine / homme = [à jour] master -> origine / master = [à jour] suivant -> origine / suivant = [à jour] pu -> origine / pu = [à jour] todo -> origine / todo Déjà à jour.
J'ai créé l'alias dog
pour afficher le graphique du journal:
git config --global alias.dog "log --all --decorate --oneline --graph"
Et utilisez-le comme suit:
git dog
Vous pouvez également enchaîner les commandes si vous utilisez le '!' opérateur pour générer un shell:
aa = !git add -A && git status
Cela 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 rapide $ git alias
vous donne vos alias actuels et ce qu'ils font.
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 de fichiers qui ont des conflits de fusion, exécutez:
git config --global alias.conflicts "diff --name-only --diff-filter=U"
Maintenant, vous ne pouvez utiliser la commande ci-dessus qu'en utilisant des "conflits":
git conflicts
# same as running: git diff --name-only --diff-filter=U
Pour moi ( j'utilise mac avec terminal ) ne fonctionnait que lorsque j'ajoutais sur .bash_profile et ouvrais un autre onglet pour charger la modification:
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"
Juste pour obtenir des alias encore plus courts que la façon de configurer git standard mentionnée dans d'autres réponses, j'ai créé un paquet npm mingit ( npm install -g mingit
) afin que la plupart des commandes deviennent 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 conserve également les achèvements bash. Le package ajoute une fonction bash à vos fichiers dot, fonctionne sur osx, linux et windows. De plus, contrairement aux autres alias, il alias git
-> g
ainsi que le deuxième paramètre.
Si vous voulez une alternative à l' ~/.gitconfig
option et ouvert à creuser un peu plus, une autre option consiste à écrire des commandes git entièrement personnalisées en les enveloppant dans un package de noeud global.
Dans votre package.json, vous définiriez la commande root (exemple:), gt
puis filtreriez les commandes spécifiques pour exécuter les commandes git correctes. Par exemple, git checkout my-branch
pourrait l'être gt co mybranch
.
Le package "christian-git" sur npm utilise cette méthode: https://github.com/alexmacarthur/christian-git
Il est donné ici Alias .Même il y a de grandes réponses ici, j'ai ajouté parce qu'il est différent dans Windows et Linux
Capture d'écran PFA de mon fichier .gitconfig
avec les alias ci-dessous
[alias]
cb = checkout branch
pullb = pull main branch
.gitconfig
Je suggère d'utiliser un .gitconfig
include pour vos alias. Une fois que vous aurez commencé à créer des alias, vous vous retrouverez probablement avec beaucoup d'entre eux. Ils seront probablement quelque chose que vous souhaitez partager avec les autres. Les mettre dans un fichier dédié facilite leur partage. Votre équipe peut même utiliser un référentiel git pour conserver les alias partagés. Et bien sûr, certains alias que vous ne voudrez pas partager, alors conservez-les dans un fichier d'alias privé.
[include]
path=src/dotfiles/.gitaliases
[include]
path=src/team-utils/gitaliases
[include]
path=.gitaliases.private
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 avez tous les raccourcis à votre disposition dans la fenêtre cmd.
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 que lorsque vous utilisez cela, vous n'êtes pas limité aux git ...
seules commandes.