Ik heb een screencast gezien waarin iemand het had gekregen
git st
git ci
om te werken. Als ik dit doe, krijg ik een foutmelding met de vraag of ik iets anders bedoelde.
Omdat ik een git newb ben, moet ik weten wat je moet doen om dit voor elkaar te krijgen?
Antwoord 1, autoriteit 100%
In principe hoef je alleen maar regels toe te voegen aan ~/.gitconfig
[alias]
st = status
ci = commit -v
Of je kunt het git config alias commando gebruiken:
$ git config --global alias.st status
Gebruik op Unix enkele aanhalingstekens als de alias een spatie heeft:
$ git config --global alias.ci 'commit -v'
Gebruik in vensters dubbele aanhalingstekens als de alias een spatie of een opdrachtregelargument heeft:
c:\dev> git config --global alias.ci "commit -v"
Het alias-commando accepteert zelfs functies als parameters. Bekijk aliassen.
Antwoord 2, autoriteit 18%
Zoals anderen al hebben gezegd, is de juiste manier om git-aliassen toe te voegen in je algemene .gitconfig
-bestand, ofwel door ~/.gitconfig
te bewerken of door de git config --global alias.<alias> <git-command>
commando
Hieronder staat een kopie van het aliasgedeelte van mijn ~/.gitconfig
-bestand:
[alias]
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD
Als je bash gebruikt, raad ik je aan om bash-completering in te stellen door git-completion.bash
naar je homedirectory te kopiëren en het uit je ~/.bashrc
. (Ik geloof dat ik dit heb geleerd uit het online boek Pro Git.) Op Mac OS X , heb ik dit bereikt met de volgende opdrachten:
# 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
Opmerking:De bash-aanvulling werkt niet alleen voor de standaard git-commando’s, maar ook voor je git-aliassen.
Tot slot, om het aantal toetsaanslagen echt te verminderen, heb ik het volgende toegevoegd aan mijn ~/.bash_aliases
-bestand, dat afkomstig is van ~/.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'
Antwoord 3, autoriteit 7%
Ik denk dat de meest bruikbare gitconfig zo is, we gebruiken altijd de 20%-functie in git, je kunt de “g ll” proberen, het is verbazingwekkend, de details:
[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
Antwoord 4, autoriteit 2%
Je hebt het git config alias
commando nodig. Voer het volgende uit in een Git-repository:
git config alias.ci commit
Voor wereldwijde alias:
git config --global alias.ci commit
Antwoord 5
Dit werkte voor mij:
bco = "!f(){ git branch ${1} && git checkout ${1}; };f"
op:
$ git --version
git version 1.7.7.5 (Apple Git-26)
Antwoord 6
Hierna volgen de 4 git-snelkoppelingen of aliassen die u kunt gebruiken om tijd te besparen.
Open de commandoregel en typ deze onderstaande 4 commando’s en gebruik daarna de sneltoetsen.
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
Test ze nu!
$ 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
Antwoord 7
Voor mij (Ik gebruik mac met terminal) werkte alleen toen ik .bash_profiletoevoegde en een ander tabblad opende om de wijziging te laden:
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"
Antwoord 8
Hiermee wordt een alias st
gemaakt voor status
:
git config --add alias.st status
Antwoord 9
Voor degenen die shell-commando’s willen uitvoeren in een git-alias, bijvoorbeeld:
$ git pof
In mijn terminal zal de huidige vertakking duwennaar mijn oorspronkelijke repo:
[alias]
pof = !git push origin -f $(git branch | grep \\* | cut -d ' ' -f2)
Waar de
$(git branch | grep \\* | cut -d ' ' -f2)
opdracht geeft de huidige tak terug.
Dit is dus een snelkoppeling voor het handmatig typen van de filiaalnaam:
git push origin -f <current-branch>
Antwoord 10
Ik heb de alias dog
gemaakt om de loggrafiek weer te geven:
git config --global alias.dog "log --all --decorate --oneline --graph"
En gebruik het als volgt:
git dog
Antwoord 11
Je kunt ook kettingcommando’s gebruiken als je de ‘!’ operator om een shell te spawnen:
aa = !git add -A && git status
Hiermee worden alle bestanden toegevoegd en krijg je een statusrapport met $ git aa
.
Voor een handige manier om uw aliassen te controleren, voegt u deze alias toe:
alias = config --get-regexp ^alias\\.
Vervolgens geeft een snelle $ git alias
je je huidige aliassen en wat ze doen.
Antwoord 12
Voeg de volgende regels toe aan je ~/.gitconfig in je home directory
[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-"
Als dat eenmaal gedaan is, kun je bijvoorbeeld git a
doen in plaats van git add
. Hetzelfde geldt voor andere commando’s onder de aliaskop..
Antwoord 13
Je kunt zowel git- als non-git-opdrachten een alias geven. Het lijkt erop dat dit in versie 1.5 is toegevoegd. Een fragment van de git config --help
pagina op versie 2.5.4 op mijn Mac toont:
Als de alias-uitbreiding wordt voorafgegaan door een uitroepteken, wordt deze behandeld als een shell-opdracht.
In uw algemene .gitconfig
-bestand zou u bijvoorbeeld het volgende kunnen hebben:
[alias]
st = status
hi = !echo 'hello'
En voer ze dan uit:
$ git hi
hello
$ git st
On branch master
...
Antwoord 14
$ git-update git: 'update' is geen git-commando. Zie 'git --help'. Bedoelde je dit? update-ref $ git config --global alias.update 'pull -v' $ git-update Van git://git.kernel.org/pub/scm/git/git = [up-to-date] html -> oorsprong/html = [up-to-date] onderhoud -> herkomst/onderhoud = [up-to-date] man -> herkomst/man = [up-to-date] master -> herkomst/meester = [up-to-date] volgende -> herkomst/volgende = [up-to-date] pu -> oorsprong/pu = [up-to-date] todo -> oorsprong/todo Al up-to-date.
Antwoord 15
Je kunt aangepaste git-aliassen instellen met behulp van git’s config. Dit is de syntaxis:
git config --global alias.<aliasName> "<git command>"
Als u bijvoorbeeld een alias nodig heeft om een lijst met bestanden met samenvoegconflicten weer te geven, voert u het volgende uit:
git config --global alias.conflicts "diff --name-only --diff-filter=U"
Nu kunt u de bovenstaande opdracht alleen gebruiken met “conflicten”:
git conflicts
# same as running: git diff --name-only --diff-filter=U
Antwoord 16
Opstelling met één regel
$ git config --global alias.co checkout && git config --global alias.br branch && git config --global alias.ci commit && git config --global alias.st status && git config --global alias.unstage 'reset HEAD --' && git config --global alias.last 'log -1 HEAD'
Gebruik:
$ git st
$ git co
$ git br
$ git ci
$ git last
$ git unstage <file | dir>
Alles zal veranderen in:
$ cat ~/.gitconfig
[user]
name = Sample User
email = [email protected]
[core]
filemode = false
compression = 1
quotepath = off
ignorecase = false
[color]
ui = auto
[alias]
co = checkout
br = branch
ci = commit
st = status
last = log -1 HEAD
unstage = reset HEAD --
Hoop dat dit sneller gaat.
Antwoord 17
Om de aliassen nog korter te maken dan de standaard git config-manier die in andere antwoorden wordt genoemd, heb ik een npm-pakket gemaakt mingit (npm install -g mingit
) zodat de meeste commando’s 2 karakters zouden worden in plaats van 2 woorden. Dit zijn de voorbeelden:
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
en andere commando’s zijn even kort. Dit houdt ook bash-aanvullingen bij. Het pakket voegt een bash-functie toe aan je dotfiles, werkt op osx, linux en windows. Ook, in tegenstelling tot de andere aliassen, aliasen het git
-> g
evenals de tweede parameter.
Antwoord 18
Als je een alternatief wilt voor de optie ~/.gitconfig
en je wilt er wat meer induiken, dan is een andere optie om volledig aangepaste git-commando’s te schrijven door ze in een globaal node-pakket te verpakken.
In uw package.json definieert u het root-commando (voorbeeld: gt
), en filtert u vervolgens de specifieke commando’s om de juiste git-commando’s uit te voeren. git checkout my-branch
kan bijvoorbeeld gt co mybranch
zijn.
Het “christian-git”-pakket op npm gebruikt deze methode: https://github.com/ alexmacarthur/christian-git
Antwoord 19
Meerdere aliasbestanden opnemen in uw .gitconfig
Ik raad aan om een .gitconfig
includevoor uw aliassen. Zodra u begint met het maken van aliassen, krijgt u er waarschijnlijk veel van. Ze zullen waarschijnlijk iets zijn dat u met anderen wilt delen. Door ze in een speciaal bestand te plaatsen, kunt u ze gemakkelijk delen. Je team kan zelfs een git-repo gebruiken om gedeelde aliassen te bewaren. En natuurlijk wil je sommige aliassen niet delen, dus bewaar ze in een privé-aliasbestand.
[include]
path=src/dotfiles/.gitaliases
[include]
path=src/team-utils/gitaliases
[include]
path=.gitaliases.private
Antwoord 20
Gebruik de volgende commando’s om een alias in Git te maken:
git config --local alias.s status
git config --local alias.c commit
git s
On branch master
nothing to commit, working tree clean
git status
On branch master
nothing to commit, working tree clean
Antwoord 21
Het wordt hier gegeven aliassen. Zelfs als er geweldige antwoorden zijn, heb ik dit toegevoegd omdat
het verschilt in Windows en Linux
Antwoord 22
PFA-screenshot van mijn .gitconfig-bestand
met de onderstaande aliassen
[alias]
cb = checkout branch
pullb = pull main branch
Antwoord 23
Ik heb alle opdrachten voor aliassen toegevoegd aan .profile in de gebruikersmap ( vim ~/.profile).
alias gs='git status'
alias gp='git pull'
alias gph='git push'
alias gd='git diff | mate'
alias gau='git add --update'
alias gc='git commit -m'
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'
alias gfo='git fetch origin'
Vervolgens heb ik het broncommando in bash en zsh shell toegevoegd.
In bash-shell ( vim ~/.bashrc)
source ~/.profile
In zsh-shell ( vim ~/.zshrc )
source ~/.profile
Antwoord 24
alias s="git status"
Je wijsvinger zal je vergeven voor alle pijn die je hem je hele leven hebt bezorgd.
Antwoord 25
Een andere mogelijkheid voor Windows zou zijn om een map gevuld met .bat-bestanden te hebben die uw snelkoppelingen bevatten. De naam van het bestand is de snelkoppeling die moet worden gebruikt. Voeg gewoon de map toe aan je PATH-omgevingsvariabele en je hebt alle snelkoppelingen tot je beschikking in het cmd-venster.
Bijvoorbeeld (gc.bat):
git commit -m %1
Vervolgens kunt u de volgende opdracht in de console uitvoeren:
gc "changed stuff"
De reden dat ik dit als antwoord toevoeg, is omdat je bij gebruik niet beperkt bent tot alleen git ...
commando’s.