Global Gitconfig Dosyası Kurulum ve Kısayollar
• Okuma Süresi : 4 dkGit, Linux çekirdeğinin yaratıcısı Linus Torvalds tarafından tasarlanan ve geliştirilen sürüm kontrol sistemidir (Version Control System). Git, geliştiricilerin kodlarının durumunu takip etmelerine yardımcı olur ve bir kod tabanı üzerinde işbirlikleri yapmalarına olanak tanır. Git sayesinde yapacağınız projelerin adım adım versiyonlarının kopyalarını alarak daha sonra ihtiyaç duyduğunuzda aldığınız kopyalara yani versiyonlara kolayca dönebilirsiniz.
Bu yazıda GIT’i daha üretken hale getirebilmek ve gereksiz görevlerden kaçınmak için global git yapılandırma dosya kurulumuna kısaca değinip, alias olarak ifade edilen kısayolları .gitconfig’te nasıl çalıştıracağımıza bakacağız. Global .gitconfig
dosyasının devreye girdiği yer burasıdır.
Git, yükleme sırasında global .gitconfig dosyasını otomatik olarak oluşturmaz. Bu dosya, ilk kez yazılana kadar oluşturulmaz. Hiç bir sistem değişkeni ayarlamadıysanız, dosya sisteminizde olmayacaktır.
Global gitconfig Dosyasını Oluşturma
Global .gitconfig
dosyanızı oluşturmanın birkaç yolu vardır.
- Bir terminal açın
git config –global -e
komutunu çalıştırı. Daha sonra dosyayı özel yapılandırmalarınızla güncelleyebilirsiniz. git config –global –list
komutunu çalıştırmak. Global gitconfig dosyasının yalnızca henüz mevcut olmadığında nerede olması gerektiğini gösterir. Gösterilen yerde.gitconfig
adıyla bir metin dosyası oluşturun ve onu özel yapılandırmanızla kaydedin.- Eğer dosya zaten varsa, önceki adım size genel .gitconfig dosyasının içeriğini gösterecektir.
Genel eğilim Git kurulu bir sistemde bu config dosyasına kimlik bilgilerinin girilmesiyle oluşturulur. Git’i kurduğunuzda yapmanız gereken ilk şey, kullanıcı adınızı ve e-posta adresinizi ayarlamaktır.
$ git config --global user.name "John Doe"
$ git config --global user.email [email protected]
Peki şu an bu yazıyı okuyorsanız ve basitçe .gitconfig
dosyasının nerede olduğunu merak ediyorsanız aşağıdaki komutla hem global config dosyasını hem de içinde bulunduğunuz klasörde git ile ilişkili bir repo config dosyası varsa nereye baktığını görebilirsiniz. Örn bu sitenin dizininden bakarsak ;
git config --list --show-origin
file:/home/eorus/.gitconfig [email protected]
file:/home/eorus/.gitconfig user.name=Alper Orus
file:.git/config [email protected]:eorus/alperorus.git
file:.git/config remote.origin.fetch=+refs/heads/*:refs/remotes/origin/*
.....
Ortak genel gitconfig yapılandırmaları arasında User Details, Alias, Color, Credential helpers:, Core, Diff ana başlıkları bulunmaktadır. Biz git komutlarını kısaltmak ve daha üretken olmanıza yardımcı olmak için kullanılan takma ad (alias) kısmına bakacağız.
Git Alias
Alias (takma ad) kullanmak, Git deneyiminizi daha basit ve daha kolay bir hale getirir. Git komutlarının her birinin tüm metnini yazmak istemiyorsanız, gitconfig dosyasını kullanarak her komut için kolayca bir takma ad ayarlayabilirsiniz. Gitconfig dosyası içerisinde aşağıdaki şekilde bir alias bölümü belirlediğimizde :
[alias]
st = status
ci = commit -s
br = branch
co = checkout
vis = !gitk --all &
Bu kısayolları git komutu ile şu şekilde kullanabileceğimizi belirtmiş oluruz.
$ git st # Runs "git status"
$ git ci # Runs "git commit -s"
$ git vis # runs "gitk --all &"
Ya da terminalde git config –global alias.co checkout>
komutunu vererek, global gitconfig dosyanıza etkin bir şekilde git checkout için bir takma ad ekleyebilirsiniz. Bundan böyle, bir branch’ı kontrol etmek için (git checkout yerine) basitçe git co
yazabilirsiniz. Global gitconfig dosyasını doğrudan güncelleyerek birkaç takma ad ekleyebilirsiniz. Benim kullandığım bazı ortak git takma adlarının bir listesini aşağıda bulabilirsiniz :
[alias]
# status short & branch
s = status -s -b
# add, commit
ac = !git add -A && git commit -m
# add, commit, push
acp = "!f() { git add -A && git commit -m \"$@\" && git push; }; f"
# get all new content
get = !git pull --rebase && git submodule update --init --recursive
# what changed (detailed log)
w = whatchanged
# log
l = log
# log simpler
lol = "log --graph --decorate --oneline"
# log simple
logd = "log --date-order --all --graph --format='%C(green)%h%Creset %C(yellow)%an%Creset %C(blue bold)%ar%Creset %C(red bold)%d%Creset%s'"
# log fancy
logf = "log --date-order --all --graph --name-status --format='%C(green)%H%Creset %C(yellow)%an%Creset %C(blue bold)%ar%Creset %C(red bold)%d%Creset%s'"
# what have i changed since yesterday
logg = !git log --since yesterday --pretty=short --author `git config user.email`
# Git last commit
last = "log -1 HEAD --stat"
# Git search commit
se = "!git rev-list --all | xargs git grep -F"
Tahmin edeceğiniz üzere git acp “commit message”
ile basit bir git akışını tek komutla halledebiliyorsunuz.
*Nix Kullanıcıları için Bonus
Gitconfig dışında bashrc dosyanıza alias atayarak bu kısayolları daha da kısa ve git’ten bağımsız hale getirebilirsiniz.
alias g=’git’
alias gb=’git branch’
alias gba=’git branch -a’
alias gc=’git commit -v’
alias gca=’git commit -v -a’
alias gd=’git diff | mate’
alias gl=’git pull’
alias gp=’git push’
Kaynaklar :