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?
Je vous recommande vivement d'utiliser git config --globalpour placer les alias au ~/.gitconfiglieu de .git/configpour votre référentiel actuel.
Cascabel
27
Je préfère les paramètres stà status -s(statut court)
hasen
20
C'est vraiment génial. Je cherchais ceci. Juste un avertissement, si vous avez une commande avec des espaces que vous devriez utiliser 'commegit config --global alias.sr 'svn rebase'
Amir Raminfar
1
@HellishHeat Ces alias sont créés par git, pour git. Si vous voulez des alias pour un autre système de ligne de commande, vous devrez chercher comment faire celui-là sur ce système. (Vous semblez utiliser un système de type Unix, et je sais que la création d'alias sur Unices est assez simple. La syntaxe est cependant différente. Essayez une recherche Google.)
Michael Dorst
17
Juste un autre avertissement, si vous utilisez Git sur la ligne de commande Windows, vous devrez utiliser des guillemets doubles "au lieu de guillemets simples lors de l'ajout d'une commande avec des espaces, par exemplegit config --global alias.ci "commit -v"
ABVincita
179
Comme d'autres l'ont dit, la manière appropriée d'ajouter des alias git est dans votre .gitconfigfichier global soit en modifiant ~/.gitconfigsoit en utilisant la git config --global alias.<alias> <git-command>commande
Voici une copie de la section alias de mon ~/.gitconfigfichier:
[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.bashdans 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_aliasesfichier, 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'
noob question: qu'est-ce que cela signifie d'être "sourced from" ~/.bashrcfile?
ahnbizcad
1
~/.bashrc: pour vraiment réduire les frappes. Exactement ce que je cherchais.
parasr
Cette réponse est un parfait exemple de la raison pour laquelle je suggère d'utiliser un .gitconfig inclure dans ma réponse! stackoverflow.com/a/59896430/117471
Bruno Bronosky
65
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 = [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
J'aime 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
Мати Тернер
4
Dans le cas où c'est la première fois que quelqu'un d'autre que moi voit une commande d'alias git commençant par !, notez que Since version 1.5.0, Git supports aliases executing non-git commands, by prefixing the value with "!"( ref )
$ 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
Pourquoi ne pas "simplement" git push -f origin HEADpousser 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?
RomainValeri
Bash a maillé la création de l'alias (en le remplaçant !gitpar la dernière commande git), mais l'édition manuelle du fichier de configuration a fait l'affaire.
H. de Jonge
5
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 --helppage 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 .gitconfigfichier global , vous pourriez avoir:
$ 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.
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-> gainsi que le deuxième paramètre.
Si vous voulez une alternative à l' ~/.gitconfigoption 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:), gtpuis filtreriez les commandes spécifiques pour exécuter les commandes git correctes. Par exemple, git checkout my-branchpourrait l'être gt co mybranch.
Incluez plusieurs fichiers d'alias dans votre .gitconfig
Je suggère d'utiliser un .gitconfiginclude 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é.
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.
Vous pouvez faire de même en ajoutant des alias de shell à votre .profile, ou .bashrc, ou .bash_profile, selon votre système. Ensuite, tous vos alias sont dans un seul fichier. C'est également le mécanisme standard pour accomplir votre tâche. La section "alias de commande" présente quelques alias de shell couramment définis utilisés pour les commandes git. Il existe de meilleures ressources et tutoriels à ce sujet, il se trouve que c'est un lien que j'avais ouvert.
Réponses:
Fondamentalement, il vous suffit d'ajouter des lignes à
~/.gitconfig
Ou vous pouvez utiliser la commande d'alias git config:
Sous Unix, utilisez des guillemets simples si l'alias a un espace:
Sous Windows, utilisez des guillemets doubles si l'alias a un espace ou un argument de ligne de commande:
La commande alias accepte même des fonctions comme paramètres. Jetez un œil aux alias .
la source
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 lagit config --global alias.<alias> <git-command>
commandeVoici une copie de la section alias de mon
~/.gitconfig
fichier: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: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
:la source
~/.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:
la source
Vous avez besoin de la
git config alias
commande. Exécutez ce qui suit dans un référentiel Git:Pour l'alias global:
la source
Cela a fonctionné pour moi:
sur:
la source
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!
, notez queSince version 1.5.0, Git supports aliases executing non-git commands, by prefixing the value with "!"
( ref )Cela créera un alias
st
pourstatus
:git config --add alias.st status
la source
git st
quand vous pouvez utilisergit s
, débarrassez-vous de celas
: PVoici 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.
Maintenant, testez-les!
la source
Pour ceux qui cherchent à exécuter des commandes shell dans un alias git , par exemple:
Dans mon terminal poussera forcer la branche actuelle vers mon référentiel d'origine:
Où le
retourne la branche courante.
Voici donc un raccourci pour taper manuellement le nom de la branche:
la source
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:Par exemple, dans votre
.gitconfig
fichier global , vous pourriez avoir:Et puis exécutez-les:
la source
Ajoutez les lignes suivantes à votre ~ / .gitconfig dans votre répertoire personnel
Une fois cela fait, vous pouvez le faire
git a
au lieu degit add
par exemple. La même chose s'applique aux autres commandes sous le titre d'alias.la source
la source
J'ai créé l'alias
dog
pour afficher le graphique du journal:Et utilisez-le comme suit:
la source
Vous pouvez également enchaîner les commandes si vous utilisez le '!' opérateur pour générer un shell:
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:
Ensuite, un rapide
$ git alias
vous donne vos alias actuels et ce qu'ils font.la source
Vous pouvez définir des alias git personnalisés à l'aide de la configuration de git. Voici la syntaxe:
Par exemple, si vous avez besoin d'un alias pour afficher une liste de fichiers qui ont des conflits de fusion, exécutez:
Maintenant, vous ne pouvez utiliser la commande ci-dessus qu'en utilisant des "conflits":
la source
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:
la source
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: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.la source
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'êtregt co mybranch
.Le package "christian-git" sur npm utilise cette méthode: https://github.com/alexmacarthur/christian-git
la source
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
la source
Capture d'écran PFA de mon fichier .gitconfig
avec les alias ci-dessous
la source
Incluez plusieurs fichiers d'alias dans votre
.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é.la source
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):
Ensuite, vous pouvez exécuter la commande suivante dans la console:
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.la source