59 puan yazan GN⁺ 2024-02-17 | 4 yorum | WhatsApp'ta paylaş
  • pull.ff only veya pull.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 seferinde git pull --rebase çalıştırmakla aynıdır.
    • pull.ff only, her seferinde git pull --ff-only çalıştırmakla aynıdır.
    • İki ayarı aynı anda kullanmanın bir anlamı yoktur; çünkü --ff-only, --rebase seçeneğini geçersiz kılar.
  • 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_ID ile commit atıldığında, git rebase --autosquash main çalıştırılırken fixup! commit'i otomatik olarak hedef commit ile birleştirilir.
  • rebase.autostash true

    • git rebase öncesinde ve sonrasında otomatik olarak git stash ve git 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 simple varsayı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 master yerine main dalını oluşturur.
  • 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 true

    • git rebase sı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.autocorrect değerini 1, 10, immediate veya prompt olarak ayarlayabilirsiniz.
  • core.pager delta

    • git diff, git log, git show gibi 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/'

  • fsckobjects: veri bozulmasını önleme

    • Veri bozulmasını agresif şekilde tespit ederek ekibi birkaç kez kurtaran ayar.
  • Submodule ile ilgili ayarlar

    • status.submoduleSummary true
    • diff.submodule log
    • submodule.recurse true
  • Diğer ayarlar

    • blame.ignoreRevsFile .git-blame-ignore-revs
    • branch.sort -committerdate
    • color.ui false
    • commit.cleanup scissors
    • core.autocrlf false
    • core.editor emacs
    • credential.helper osxkeychain
    • diff.tool difftastic
    • diff.colorMoved default
    • diff.colorMovedWS allow-indentation-change
    • diff.context 10
    • fetch.prune true ve fetch.prunetags
    • gpg.format ssh
    • log.date iso
    • merge.keepbackup false
    • merge.tool meld
    • push.followtags true
    • rebase.missingCommitsCheck error
    • rebase.updateRefs true
  • Nasıl ayarlanır

    • Genellikle git config --global NAME VALUE kullanılarak ayarlanır.
    • Bir seçeneği silmek için ~/.gitconfig dosyasını elle düzenleyin.
  • Bu yazıyı yazdıktan sonra değiştirilen ayarlar

    • diff.algorithm histogram
    • branch.sort -committerdate
    • merge.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 zdiff3 veya rebase.autosquash true gibi 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

 
pril1 2024-02-23

Bir seçeneği silmek için git config --global --unset NAME komutunu kullanmanın bir yolu da var.

 
rumbarum 2024-02-21

Kendi ayarlarınızı kontrol etmek istiyorsanız

git config --list ekleyin.

 
pmc7777 2024-02-18

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.

 
GN⁺ 2024-02-17
Hacker News görüşleri
  • core.autocrlf ve safecrlf ayarları
    • CRLF dosyalarının commit edilmesini önleme ve LF'ye dönüştürmeyi zorlama
    • Gerekirse gitattributes ile geçersiz kılınabilir
  • .gitconfig içindeki alias ayarları
    • Commit geçmişini sade bir grafik olarak gösteren kısayol ayarları
    • Stack Overflow gönderisinden alınmış bir yapılandırma
  • rebase.autosquash ve fixup kısayolu
    • Sık kullanılan bir ayar olarak, commit sonrası rebase işlemini otomatikleştirir
    • pull.rebase de önemli, ancak fixup daha sık kullanılıyor
  • insteadOf ayarının kullanışlılığı
    • GitHub remote'u eklerken kısayol kullanımı
    • advice.statusHints, include.path, remote "origin".fetch, interactive.singleKey gibi çeşitli ayarlardan da bahsediliyor
  • Kişisel .gitconfig ayarı örneği
    • Çeşitli alias, tag, tar, log, pull, diff, difftool, pager, safe, advice, init ayarlarını içeriyor
  • Sayfalayıcı olarak delta kullanma ayarı
    • Daha okunabilir ve sözdizimi vurgulu fark gösterimi
    • Varsayılan branch'e checkout yapan bir kısayol ekleme
  • Farklı e-postalar kullanmak için user.useConfigOnly ayarı
    • user.email yorum satırına alındıktan sonra, yeni bir repository'de commit ederken e-posta ayarlama
  • merge.conflictstyle varsayılanını değiştirme gerekliliği
    • diff3 stili, çakışma çözümünde daha fazla bilgi sağlar
  • Ek ayarlar
    • core.commentChar, alias.newtask, alias.zip, git checkout -, format.pretty, delta ayarları
  • branch.sort ayarıyla ilgili yanlış anlama
    • Aslında en son kullanılan branch'e göre değil, commit tarihine göre sıralar
  • Başka bir kişisel .gitconfig ayarı örneği
    • alias.lg, alias.hist, alias.quick-push, alias.search, user, core, url ayarları
    • quick-push kısayolu üzerinden basit bir iş akışı tanımlanabilir

Yukarıdaki içerik, Hacker News yorumlarında kullanıcıların paylaştığı kişisel .gitconfig ayarları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.