Birisinin aldığı bir screencast gördüm
git st
git ci
çalışmak. Bunu yaptığımda bana başka bir şey ifade edip etmediğimi soran bir hata alıyorum.
Git bir yenisi olarak, bunu yapmak için ne yapmanız gerektiğini bilmem gerekir?
Birisinin aldığı bir screencast gördüm
git st
git ci
çalışmak. Bunu yaptığımda bana başka bir şey ifade edip etmediğimi soran bir hata alıyorum.
Git bir yenisi olarak, bunu yapmak için ne yapmanız gerektiğini bilmem gerekir?
Yanıtlar:
Temel olarak, sadece ~/.gitconfig
[alias]
st = status
ci = commit -v
Veya git config alias komutunu kullanabilirsiniz:
$ git config --global alias.st status
Unix'te, takma adda boşluk varsa tek tırnak kullanın:
$ git config --global alias.ci 'commit -v'
Pencerelerde, takma adda boşluk veya komut satırı bağımsız değişkeni varsa çift tırnak kullanın:
c:\dev> git config --global alias.ci "commit -v"
Alias komutu işlevleri parametre olarak kabul eder. Takma adlara bir göz atın .
git config --global
takma adları yerleştirmenizi tavsiye ederim . ~/.gitconfig
.git/config
st
etmek status -s
(kısa statü)
'
gibi kullanmalısınızgit config --global alias.sr 'svn rebase'
"
, boşluklarla komut eklerken tek tırnak yerine çift tırnak kullanmanız gerekir , örn.git config --global alias.ci "commit -v"
Diğerlerinin söylediği gibi git takma adları eklemenin uygun yolu global .gitconfig
dosyanızda düzenleyerek ~/.gitconfig
veya git config --global alias.<alias> <git-command>
komutu kullanarak
Aşağıda, dosyamın takma ad bölümünün bir kopyası var ~/.gitconfig
:
[alias]
st = status
ci = commit
co = checkout
br = branch
unstage = reset HEAD --
last = log -1 HEAD
Ayrıca, bash kullanıyorsanız git-completion.bash
, ana dizininize kopyalayıp kaynak kodunuzdan kaynak alarak bash tamamlamayı ayarlamanızı öneririm ~/.bashrc
. (Bunu Pro Git çevrimiçi kitabından öğrendiğime inanıyorum .) Mac OS X'te bunu aşağıdaki komutlarla başardım:
# 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
Not: Bash tamamlama yalnızca standart git komutları için değil, aynı zamanda git diğer adlarınız için de çalışır.
Son olarak, tuş vuruşlarını gerçekten kısmak için, dosyama aşağıdakilerden ~/.bash_aliases
kaynaklanmış olan dosyayı ekledim ~/.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
dosyadan kaynaklanmak ne demektir ?
~/.bashrc
: tuş vuruşlarını gerçekten kesmek için. Tam olarak ne aradığını.
Bence en kullanışlı gitconfig böyle, biz her zaman git% 20 işlevini kullanın, "g ll" deneyebilirsiniz, şaşırtıcı, ayrıntılar:
[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
git config alias
Komuta ihtiyacınız var . Git deposunda aşağıdakileri yürütün:
git config alias.ci commit
Global takma ad için:
git config --global alias.ci commit
Bu benim için çalıştı:
bco = "!f(){ git branch ${1} && git checkout ${1}; };f"
tarih:
$ git --version
git version 1.7.7.5 (Apple Git-26)
git cob
. bana koçanın mısırında olduğu gibi yaz hatırlatıyor. aslında yeterince düşünmediğimiz harika bir kelime ... koçanı
Bu, aşağıdakiler için bir takma ad st
oluşturur status
:
git config --add alias.st status
git st
kullanırken git s
, bundan kurtulun s
: P
Follwing, zaman kazanmak için kullanacağınız 4 git kısayolu veya takma addır.
Komut satırını açın ve bunları 4 komutun altına yazın ve ardından gelen kısayolları kullanın.
git config --global alias.co checkout
git config --global alias.ci commit
git config --global alias.st status
git config --global alias.br branch
Şimdi onları test edin!
$ 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
Git takma adında kabuk komutları yürütmek isteyenler için, örneğin:
$ git pof
Terminalimde mevcut şubeyi kökeni repoma zorlayacak :
[alias]
pof = !git push origin -f $(git branch | grep \\* | cut -d ' ' -f2)
Nerede
$(git branch | grep \\* | cut -d ' ' -f2)
komutu geçerli dalı döndürür.
Bu, şube adını manuel olarak yazmak için bir kısayoldur:
git push origin -f <current-branch>
git push -f origin HEAD
geçerli dalı uzaktaki karşılığına itmek için "basit" değilsiniz ? Ayrıca, zorla zorlamak için bir kısayol? Bir kısayoldan faydalanmak için yeterince sık güç uygulamanız gerekiyorsa, kurulumunuzda veya iş akışınızda başka bir şey yok mu?
!git
son git komutuyla değiştirildi ), ancak yapılandırma dosyasını manuel olarak düzenlemek hile yaptı.
Git ve git olmayan komutların diğer adlarını kullanabilirsiniz. Bu, sürüm 1.5'te eklenmiş gibi görünüyor. git config --help
Mac bilgisayarımdaki 2.5.4 sürümündeki sayfadan bir pasaj şunları gösterir:
Takma ad genişletmesinin önüne bir ünlem işareti gelirse, kabuk komutu olarak değerlendirilir.
Örneğin, global .gitconfig
dosyanızda şunlar olabilir:
[alias]
st = status
hi = !echo 'hello'
Ve sonra onları çalıştırın:
$ git hi
hello
$ git st
On branch master
...
Ana dizininizdeki ~ / .gitconfig dosyasına aşağıdaki satırları ekleyin
[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-"
Bu yapıldıktan sonra, örneğin git a
yerine yapabilirsiniz git add
. Aynısı diğer ad başlığı altındaki diğer komutlar için de geçerlidir.
$ git update git: 'update' bir git komutu değildir. Bkz. 'Git --help'. Bunu mu demek istediniz? update-ref $ git config --global alias.update 'pull -v' $ git update Git: //git.kernel.org/pub/scm/git/git = [güncel] html -> orijin / html = [güncel] maint -> başlangıç / maint = [güncel] erkek -> kökeni / erkek = [güncel] ana -> başlangıç / ana = [güncel] sonraki -> başlangıç / sonraki = [güncel] pu -> orijin / pu = [güncel] yapılacaklar -> kökeni / yapılacaklar Zaten güncel.
dog
Günlük grafiğini göstermek için takma ad oluşturdum :
git config --global alias.dog "log --all --decorate --oneline --graph"
Ve aşağıdaki gibi kullanın:
git dog
'!' Kullanırsanız komutları da zincirleyebilirsiniz. kabuk oluşturmak için operatör:
aa = !git add -A && git status
Bu, hem tüm dosyaları ekler hem de ile bir durum raporu verir $ git aa
.
Takma adlarınızı kontrol etmenin kullanışlı bir yolu için bu takma adı ekleyin:
alias = config --get-regexp ^alias\\.
Sonra hızlı bir $ git alias
şekilde mevcut takma adlarınızı ve ne yaptıklarını verir.
Git'in config özelliğini kullanarak özel git diğer adları ayarlayabilirsiniz. İşte sözdizimi:
git config --global alias.<aliasName> "<git command>"
Örneğin, birleştirme çakışmaları olan dosyaların listesini görüntülemek için bir takma ada ihtiyacınız varsa, şunu çalıştırın:
git config --global alias.conflicts "diff --name-only --diff-filter=U"
Şimdi yukarıdaki komutu sadece "çakışmalar" kullanarak kullanabilirsiniz:
git conflicts
# same as running: git diff --name-only --diff-filter=U
Benim için ( terminal ile mac kullanıyorum ) sadece .bash_profile üzerine eklediğimde ve değişikliği yüklemek için başka bir sekme açtığımda çalıştı :
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"
Diğer adları diğer cevaplarda belirtilen standart git config yolundan bile daha kısa almak için , çoğu komut 2 kelime yerine 2 karakter olacak şekilde bir npm paketi mingit ( npm install -g mingit
) oluşturdum . İşte örnekler:
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
ve diğer komutlar da benzer şekilde kısa olur. Bu ayrıca bash tamamlamalarını tutar. Paket nokta dosyalarınıza bir bash işlevi ekler, osx, linux ve windows üzerinde çalışır. Ayrıca, diğer takma adlardan farklı olarak, takma adlar git
-> g
yanı sıra ikinci parametre.
Seçeneğe bir alternatif istiyorsanız ~/.gitconfig
ve biraz daha kazmaya açıksanız, başka bir seçenek de global bir düğüm paketine sararak tamamen özel git komutları yazmaktır.
Package.json dosyasında root komutunu (örnek:) tanımlar gt
ve ardından doğru git komutlarını yürütmek için belirli komutlara filtre uygularsınız. Örneğin, git checkout my-branch
olabilir gt co mybranch
.
Npm'deki "christian-git" paketi şu yöntemi kullanır: https://github.com/alexmacarthur/christian-git
Burada takma adlar verildi.Burada harika cevaplar olsa bile, bunu ekledim çünkü windows ve linux'da farklı
.Gitconfig dosyamın PFA ekran görüntüsü
aşağıdaki takma adlarla
[alias]
cb = checkout branch
pullb = pull main branch
.gitconfig
Takma adlarınız için bir .gitconfig
içerme kullanmanızı öneririm . Takma ad oluşturmaya başladığınızda, muhtemelen birçoğu ile karşılaşacaksınız. Muhtemelen başkalarıyla paylaşmak istediğiniz bir şey olacaktır. Bunları özel bir dosyaya koymak, paylaşmayı kolaylaştırır. Ekibiniz paylaşılan takma adları tutmak için bir git repo bile kullanabilir. Ve elbette paylaşmak istemeyeceğiniz bazı takma adlar, bu yüzden onları özel bir takma ad dosyasında saklayın.
[include]
path=src/dotfiles/.gitaliases
[include]
path=src/team-utils/gitaliases
[include]
path=.gitaliases.private
Windows için başka bir olasılık, kısayollarınızda bulunan .bat dosyalarıyla dolu bir dizine sahip olmaktır. Dosyanın adı kullanılacak kısayoldur. Basitçe dizini PATH ortam değişkeninize ekleyin ve cmd penceresinde tüm kısayollara sahipsiniz.
Örneğin (gc.bat):
git commit -m %1
Sonra konsolda aşağıdaki komutu yürütebilirsiniz:
gc "changed stuff"
Bunu yanıt olarak eklememin nedeni, bunu kullanırken git ...
yalnızca komutlarla sınırlı olmamanızdır .