Jump to content

Git/Aliasy

From mediawiki.org
< Git
This page is a translated version of the page Git/aliases and the translation is 100% complete.

Git je mocný nástroj s mnoha užitečnými možnostmi. Věděli jste, že si můžete vytvořit alias pro příkaz a sadu možností? Už nebudete muset psát dlouhé jednořádkové věty. Níže je uveden seznam některých užitečných aliasů.

Jak nastavit alias

Do položky ~/.gitconfig přidejte sekci [alias]. Pak má každý řádek formát <tab>key = value.

Níže je uveden úryvek sekce [alias] ze souboru .gitconfig.

[alias]
    short-name = actual (long?) command

Všechno

Pokud chcete získat vše najednou, zde je seznam všech aliasů na této stránce:

[alias]
	amend     = commit --amend -a
	br        = branch
	branch-cleanup = "!f() { git branch --merged ${1-master} | grep -v " ${1-master}$" | xargs -n 1 git branch -d; }; f"
	co        = checkout
	ds        = diff --staged
	di        = diff
	fetchall  = fetch -v --all
	lg = log --graph --pretty=format:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(cyan)<%an>%Creset' --abbrev-commit --date=relative
	l = ! git lg -n25
	log-me    = !UN=$(git config user.name)&& git log --author="\"$UN\"" --pretty=format:'%h %cd %s' --date=short
	log-nice  = log --graph --decorate --pretty=oneline --abbrev-commit
	panic     = !tar cvf ../git_panic.tar *
	st        = status
	wdiff     = diff --word-diff=plain

amend

[alias]
	amend = commit --amend -a
Příklad
git amend

S Gerritem budete možná muset opravit sadu záplat. To obvykle znamená úpravu souborů a následnou nutnost opravy předchozí zprávy o potvrzení (commitu). Pracovní postup by byl přibližně takový:

$ git review -d 1234 // gerrit changeset id
<edit files>
$ git add <files>
$ git commit --amend
<update commit-msg>

Pokud jste pouze změnili soubory (nepřidali nové), lze poslední dva příkazy seskupit pomocí přepínače git commit --amend -a.

br

[alias]
	br = branch
Příklad
  • git br foo --track origin/foo
  • git br -D some/old/branch

branch-cleanup

[alias]
        branch-cleanup = "!f() { git branch --merged ${1-master} | grep -v " ${1-master}$" | xargs -n 1 git branch -d; }; f"

Tím se smažou všechny odkazy na větve, které jsou plně sloučeny do větve master (nebo do jiné větve, pokud ji zadáte).

co

[alias]
	co = checkout
Příklad
git co master

ds

[alias]
	ds = diff --staged
Příklad
git ds

Prostý znak git diff ukazuje rozdíl mezi (nepřipravenou) pracovní kopií a připravenou pracovní kopií. Ve většině případů je to stejný rozdíl jako mezi pracovní kopií a poslední potvrzenou revizí aktuální větve (HEAD).

Pokud jste však již provedli git add a poté jste provedli další změny, změny k datu posledního git add se již v git diff nezobrazují. Použijte git diff --staged k vytvoření rozdílu mezi již připravenými (ale nepotvrzenými) změnami a aktuálním HEAD.

di

[alias]
	di = diff
Příklad
git di

fetchall

[alias]
	fetchall = fetch -v --all
Příklad
git fetchall

V tomto případě jsou origin i gerrit stejné, což pro výše uvedený snímek obrazovky stačí.

Můžete také použít git remote update

lg

[alias]
	lg = log --graph --pretty=format:'%Cred%h%Creset -%C(auto)%d%Creset %s %Cgreen(%cr) %C(cyan)<%an>%Creset' --abbrev-commit --date=relative
	l = ! git lg -n25
Příklad
git lg (výchozí, s pagerem) nebo git l (pouze poslední 25)

log-me

Jméno autora rozlišuje velká a malá písmena.

[alias]
	log-me  = !UN=$(git config user.name)&& git log --author="\"$UN\"" --pretty=format:'%h %cd %s' --date=short
Příklad
git log-me -n20

log-nice

[alias]
	log-nice = log --graph --decorate --pretty=oneline --abbrev-commit
Příklad
git log-nice -n20

panic

[alias]
	panic = !tar cvf ../git_panic.tar *

Někdy se může stát, že jste v gitu udělali něco špatně. Myslíš, že jsi ztratil commity, nebo něco podobného. Je pravděpodobné, že informace jsou stále k dispozici, takže nejlepším postupem je okamžitě si je zálohovat, než riskujete skutečnou ztrátu dat.

st

[alias]
	st = status
Příklad
git st

wdiff

[alias]
	wdiff    = diff --word-diff=plain
Příklad
git wdiff