Widziałem screencast, w którym ktoś się dostał
git st
git ci
pracować. Gdy to robię, pojawia się błąd z pytaniem, czy mam na myśli coś innego.
Będąc głupkiem, muszę wiedzieć, co musisz zrobić, aby to zrobić?
Widziałem screencast, w którym ktoś się dostał
git st
git ci
pracować. Gdy to robię, pojawia się błąd z pytaniem, czy mam na myśli coś innego.
Będąc głupkiem, muszę wiedzieć, co musisz zrobić, aby to zrobić?
Odpowiedzi:
Zasadniczo wystarczy dodać linie ~/.gitconfig
[alias]
st = status
ci = commit -v
Lub możesz użyć polecenia alias git config:
$ git config --global alias.st status
W unixie używaj pojedynczych cudzysłowów, jeśli alias ma spację:
$ git config --global alias.ci 'commit -v'
W systemie Windows użyj podwójnych cudzysłowów, jeśli alias ma spację lub argument wiersza poleceń:
c:\dev> git config --global alias.ci "commit -v"
Komenda alias akceptuje nawet funkcje jako parametry. Spójrz na aliasy .
git config --global
aliasów ~/.gitconfig
zamiast w .git/config
bieżącym repozytorium.
st
dla status -s
(krótkiej status)
'
jakgit config --global alias.sr 'svn rebase'
"
zamiast pojedynczych cudzysłowów podczas dodawania polecenia ze spacjami, np.git config --global alias.ci "commit -v"
Jak inni powiedzieli, właściwy sposób dodawania aliasów git znajduje się w .gitconfig
pliku globalnym poprzez edycję ~/.gitconfig
lub użycie git config --global alias.<alias> <git-command>
polecenia
Poniżej znajduje się kopia sekcji aliasów mojego ~/.gitconfig
pliku:
[alias]
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD
Ponadto, jeśli używasz bash, zalecam skonfigurowanie zakończenia bash, kopiując git-completion.bash
do katalogu domowego i pozyskując go z twojego ~/.bashrc
. (Wydaje mi się, że dowiedziałem się o tym z książki online Pro Git .) W systemie Mac OS X dokonałem tego za pomocą następujących poleceń:
# 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
Uwaga: Uzupełnianie bash będzie działać nie tylko dla standardowych poleceń git, ale także dla aliasów git.
Wreszcie, aby naprawdę ograniczyć liczbę naciśnięć klawiszy, do mojego ~/.bash_aliases
pliku, który pochodzi z ~/.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
pliku?
~/.bashrc
: aby naprawdę ograniczyć klawisze. Dokładnie to, czego szukałem.
Myślę, że najbardziej przydatny jest taki gitconfig, zawsze używamy funkcji 20% w git, możesz wypróbować "g ll", to niesamowite, szczegóły:
[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
Potrzebujesz git config alias
polecenia. Wykonaj następujące czynności w repozytorium Git:
git config alias.ci commit
W przypadku globalnego aliasu:
git config --global alias.ci commit
To działało dla mnie:
bco = "!f(){ git branch ${1} && git checkout ${1}; };f"
na:
$ git --version
git version 1.7.7.5 (Apple Git-26)
git cob
. przypomina mi lato, jak w kukurydzy na kolbie. właściwie świetne słowo, o którym nie myślimy wystarczająco dużo ... to znaczy
Poniżej znajdują się 4 skróty git lub aliasy, które pozwalają zaoszczędzić czas.
Otwórz wiersz poleceń i wpisz poniższe 4 polecenia, a następnie użyj skrótów po.
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
Teraz je przetestuj!
$ 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
Dla tych, którzy chcą wykonywać polecenia powłoki w aliasie git , na przykład:
$ git pof
W moim terminalu naciska siłę obecnego oddziału do mojego repozytorium pochodzenia:
[alias]
pof = !git push origin -f $(git branch | grep \\* | cut -d ' ' -f2)
Gdzie
$(git branch | grep \\* | cut -d ' ' -f2)
polecenie zwraca bieżącą gałąź.
Oto skrót do ręcznego wpisywania nazwy oddziału:
git push origin -f <current-branch>
git push -f origin HEAD
zepchnąć bieżącą gałąź do swojego zdalnego odpowiednika? Również skrót, aby naciskać z siłą? Jeśli musisz naciskać siłę wystarczająco często, aby skorzystać ze skrótu, czy nie jest coś nie tak w innym miejscu w konfiguracji lub przepływie pracy?
!git
ostatnią komendą git), ale załatwiła go ręczna edycja pliku konfiguracyjnego.
Możesz aliasować zarówno polecenia git, jak i inne niż git. Wygląda na to, że został dodany w wersji 1.5. Fragment git config --help
strony w wersji 2.5.4 na moim komputerze Mac pokazuje:
Jeśli rozszerzenie aliasu jest poprzedzone wykrzyknikiem, będzie traktowane jak polecenie powłoki.
Na przykład w .gitconfig
pliku globalnym możesz mieć:
[alias]
st = status
hi = !echo 'hello'
A następnie uruchom je:
$ git hi
hello
$ git st
On branch master
...
Dodaj następujące wiersze do ~ / .gitconfig w katalogu domowym
[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-"
Gdy to zrobisz, możesz to zrobić na przykład git a
zamiast git add
. To samo dotyczy innych poleceń pod nagłówkiem aliasu.
$ git update git: „aktualizacja” nie jest poleceniem git. Zobacz „git --help”. Miałaś na myśli to? aktualizacja-ref $ git config --global alias.update 'pull -v' $ git update Z git: //git.kernel.org/pub/scm/git/git = [aktualne] html -> origin / html = [aktualne] maint -> origin / maint = [aktualne] człowiek -> pochodzenie / człowiek = [aktualne] master -> origin / master = [aktualne] następne -> pochodzenie / następne = [aktualne] pu -> origin / pu = [aktualne] todo -> origin / todo Już na bieżąco.
Utworzyłem alias dog
do wyświetlania wykresu dziennika:
git config --global alias.dog "log --all --decorate --oneline --graph"
I użyj go w następujący sposób:
git dog
Możesz także łączyć polecenia, jeśli używasz „!” operator, aby spawnować powłokę:
aa = !git add -A && git status
Spowoduje to dodanie wszystkich plików i wygenerowanie raportu o stanie z $ git aa
.
Aby w wygodny sposób sprawdzić swoje aliasy, dodaj ten alias:
alias = config --get-regexp ^alias\\.
Następnie szybkie $ git alias
daje ci aktualne aliasy i ich funkcje .
Możesz ustawić niestandardowe aliasy git za pomocą config git. Oto składnia:
git config --global alias.<aliasName> "<git command>"
Na przykład jeśli potrzebujesz aliasu, aby wyświetlić listę plików, w których występują konflikty scalania, uruchom:
git config --global alias.conflicts "diff --name-only --diff-filter=U"
Teraz możesz używać powyższego polecenia tylko przy użyciu „konfliktów”:
git conflicts
# same as running: git diff --name-only --diff-filter=U
Dla mnie ( używam Maca z terminalem ) działało tylko wtedy, gdy dodałem plik .bash_profile i otworzyłem kolejną kartę, aby załadować zmianę:
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"
Aby uzyskać aliasy jeszcze krótsze niż standardowy sposób konfiguracji git wspomniany w innych odpowiedziach, stworzyłem pakiet npm mingit ( npm install -g mingit
), aby większość poleceń miała 2 znaki zamiast 2 słów. Oto przykłady:
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
a inne polecenia byłyby podobnie krótkie. To także zachowuje ukończenie bash. Pakiet dodaje funkcję bash do twoich plików dot, działa na systemach OSX, Linux i Windows. Ponadto, w przeciwieństwie do innych aliasów, aliasy git
-> g
oraz drugi parametr.
Jeśli chcesz alternatywę dla tej ~/.gitconfig
opcji i nieco bardziej zagłębiasz się, kolejną opcją jest napisanie całkowicie niestandardowych poleceń git poprzez zawinięcie ich w globalny pakiet węzłów.
W pliku package.json zdefiniujesz polecenie root (przykład:), gt
a następnie przefiltrujesz określone polecenia, aby wykonać prawidłowe polecenia git. Na przykład git checkout my-branch
może być gt co mybranch
.
Pakiet „christian-git” na npm używa tej metody: https://github.com/alexmacarthur/christian-git
Podano tutaj Aliasy. Nawet tutaj są świetne odpowiedzi, dodałem to, ponieważ różni się pod Windows i Linux
Zrzut ekranu PFA mojego pliku .gitconfig
z poniższymi aliasami
[alias]
cb = checkout branch
pullb = pull main branch
.gitconfig
Sugeruję użycie .gitconfig
dołączania do swoich aliasów. Gdy zaczniesz tworzyć aliasy, prawdopodobnie skończy się ich wiele. Prawdopodobnie będą to coś, czym chcesz się podzielić z innymi. Umieszczenie ich w dedykowanym pliku ułatwia udostępnianie. Twój zespół może nawet użyć repozytorium git do przechowywania udostępnionych aliasów. I oczywiście niektórych aliasów, których nie chcesz udostępniać, więc przechowuj je w prywatnym pliku aliasów.
[include]
path=src/dotfiles/.gitaliases
[include]
path=src/team-utils/gitaliases
[include]
path=.gitaliases.private
Inną możliwością dla systemu Windows byłoby posiadanie katalogu wypełnionego plikami .bat, w których znajdują się skróty. Nazwa pliku to skrót, którego należy użyć. Po prostu dodaj katalog do zmiennej środowiskowej PATH, a będziesz mieć do dyspozycji wszystkie skróty w oknie cmd.
Na przykład (gc.bat):
git commit -m %1
Następnie możesz wykonać następujące polecenie w konsoli:
gc "changed stuff"
Powodem, dla którego dodaję to jako odpowiedź, jest to, że podczas korzystania z tego nie jesteś ograniczony git ...
tylko do poleceń.