Popüler Git yapılandırma seçenekleri
(jvns.ca)-
pull.ff onlyveyapull.rebase true- Her iki ayar da
git pullçalıştırıldığında, dal üst dal ile farklıysa yanlışlıkla merge commit oluşturulmasını önlemeyi amaçlar. pull.rebase true, her seferindegit pull --rebaseçalıştırmakla aynıdır.pull.ff only, her seferindegit pull --ff-onlyçalıştırmakla aynıdır.- İki ayarı aynı anda kullanmanın bir anlamı yoktur; çünkü
--ff-only,--rebaseseçeneğini geçersiz kılar.
- Her iki ayar da
-
merge.conflictstyle zdiff3- Merge çakışmalarını daha okunabilir hale getiren ayar.
diff3, merge çakışmalarının gösterilme biçimini varsayılandan farklılaştırarak kaynak kodun orijinal halini ortada gösterir.zdiff3,diff3'ün geliştirilmiş bir sürümüdür ve daha iyi kabul edilir.
-
rebase.autosquash true- Eski commit'leri düzeltmeyi kolaylaştıran özellik.
git commit --fixup OLD_COMMIT_IDile commit atıldığında,git rebase --autosquash mainçalıştırılırkenfixup!commit'i otomatik olarak hedef commit ile birleştirilir.
-
rebase.autostash truegit rebaseöncesinde ve sonrasında otomatik olarakgit stashvegit stash popçalıştırır.
-
push.default simple,push.default current- Geçerli dalın aynı isimli uzak dala otomatik olarak push edilmesini sağlar.
push.default simplevarsayılan ayardır ve yalnızca dal zaten bir uzak dalı takip ediyorsa çalışır.push.default current, her zaman yerel dalı aynı isimli uzak dala push eder.
-
init.defaultBranch main- Yeni bir depo oluşturulurken
masteryerinemaindalını oluşturur.
- Yeni bir depo oluşturulurken
-
commit.verbose true- Commit mesajının yazıldığı metin düzenleyicisine tam commit diff'ini ekleyerek ne yaptığınızı hatırlamayı kolaylaştırır.
-
rerere.enabled truegit rebasesırasında merge çakışmalarını nasıl çözdüğünüzü hatırlar ve çakışmaları otomatik olarak çözer.
-
help.autocorrect 10- Git'in otomatik düzeltme özelliği yazım hatalarını denetler, ancak düzeltilen komutu otomatik olarak çalıştırmaz.
- Otomatik çalıştırma için
help.autocorrectdeğerini1,10,immediateveyapromptolarak ayarlayabilirsiniz.
-
core.pager deltagit diff,git log,git showgibi komutların çıktısını göstermekte kullanılan "pager"dır.delta, sözdizimi vurgulamalı gelişmiş bir diff görüntüleme aracı olarak ayarlanır.
-
diff.algorithm histogram- Varsayılan diff algoritması, fonksiyonların sırası değiştiğinde sık sık sorun çıkarır.
diff.algorithm histogram, bunu daha net gösterir.
-
core.excludesfile: küresel .gitignore- Tüm depolara uygulanan küresel gitignore dosyasını ayarlar.
-
includeIf: kişisel ve iş için ayrı git ayarları- Kişisel ve iş depoları için farklı e-posta adresleri yapılandırmakta kullanılır.
-
url."git@github.com:".insteadOf 'https://github.com/'https://github.comifadesini otomatik olarakgit@github.com:ile değiştirir.
-
fsckobjects: veri bozulmasını önleme- Veri bozulmasını agresif şekilde tespit ederek ekibi birkaç kez kurtaran ayar.
-
Submodule ile ilgili ayarlar
status.submoduleSummary truediff.submodule logsubmodule.recurse true
-
Diğer ayarlar
blame.ignoreRevsFile .git-blame-ignore-revsbranch.sort -committerdatecolor.ui falsecommit.cleanup scissorscore.autocrlf falsecore.editor emacscredential.helper osxkeychaindiff.tool difftasticdiff.colorMoved defaultdiff.colorMovedWS allow-indentation-changediff.context 10fetch.prune truevefetch.prunetagsgpg.format sshlog.date isomerge.keepbackup falsemerge.tool meldpush.followtags truerebase.missingCommitsCheck errorrebase.updateRefs true
-
Nasıl ayarlanır
- Genellikle
git config --global NAME VALUEkullanılarak ayarlanır. - Bir seçeneği silmek için
~/.gitconfigdosyasını elle düzenleyin.
- Genellikle
-
Bu yazıyı yazdıktan sonra değiştirilen ayarlar
diff.algorithm histogrambranch.sort -committerdatemerge.conflictstyle zdiff3
-
Kapanış
- Birçok kişiye favori ayarlarını sorup en sık anılanları listelemek faydalıdır.
GN⁺ görüşü
- Bu yazıdaki en önemli nokta, geliştiricilerin sık kullandığı git yapılandırma seçeneklerini göstermesidir.
- Git kullanan başlangıç seviyesindeki yazılım mühendisleri için bu ayarlar, iş verimliliğini artırmaya ve günlük sorunları çözmeye yardımcı olabilir.
- Özellikle
merge.conflictstyle zdiff3veyarebase.autosquash truegibi ayarlar, merge çakışmalarını çözmeyi ve commit geçmişini yönetmeyi kolaylaştırarak işbirliği sürecinde ortaya çıkabilecek sorunları azaltabilir.
4 yorum
Bir seçeneği silmek için
git config --global --unset NAMEkomutunu kullanmanın bir yolu da var.Kendi ayarlarınızı kontrol etmek istiyorsanız
git config --listekleyin.Ana geliştirme ortamında bunu ayarlayıp başka bir ortamda ayarlı olmadığında “neden çalışmıyor acaba..” diye düşündüğüm olmuştu hahaha. Geliştiriciler Git’i her gün kullandığına göre, Git ayarlarıyla ilgili konulara ilginin daha da artmasının iyi olacağını düşünüyorum.
Hacker News görüşleri
core.autocrlfvesafecrlfayarlarıgitattributesile geçersiz kılınabilir.gitconfigiçindekialiasayarlarırebase.autosquashvefixupkısayolupull.rebasede önemli, ancakfixupdaha sık kullanılıyorinsteadOfayarının kullanışlılığıadvice.statusHints,include.path,remote "origin".fetch,interactive.singleKeygibi çeşitli ayarlardan da bahsediliyor.gitconfigayarı örneğialias,tag,tar,log,pull,diff,difftool,pager,safe,advice,initayarlarını içeriyordeltakullanma ayarıuser.useConfigOnlyayarıuser.emailyorum satırına alındıktan sonra, yeni bir repository'de commit ederken e-posta ayarlamamerge.conflictstylevarsayılanını değiştirme gerekliliğidiff3stili, çakışma çözümünde daha fazla bilgi sağlarcore.commentChar,alias.newtask,alias.zip,git checkout -,format.pretty,deltaayarlarıbranch.sortayarıyla ilgili yanlış anlama.gitconfigayarı örneğialias.lg,alias.hist,alias.quick-push,alias.search,user,core,urlayarlarıquick-pushkısayolu üzerinden basit bir iş akışı tanımlanabilirYukarıdaki içerik, Hacker News yorumlarında kullanıcıların paylaştığı kişisel
.gitconfigayarlarını ve tercih ettikleri Git yapılandırma ipuçlarını özetliyor. Bu ayarlar, Git kullanımında verimliliği artırmaya, belirli işleri otomatikleştirmeye ve kullanıcı deneyimini iyileştirmeye odaklanıyor.