⌨️ Git Temelleri: status, add, commit, diff, log

Git Temelleri: status, add, commit: Staging area, kargoya vereceğin kutuyu kapatmadan önce masanın üstünden hangi eşyaları içine koyacağını tek tek seçmen gibidir: masada on deği

Staging area, kargoya vereceğin kutuyu kapatmadan önce masanın üstünden hangi eşyaları içine koyacağını tek tek seçmen gibidir: masada on değişen dosya durabilir ama kutuya (commit) yalnızca staging’e koyduklarım girer, gerisi masada bekler. Peki madem dosyaları zaten kaydettim, neden Git ayrıca bir "staging" adımı dayatıyor — doğrudan commit etse olmaz mıydı? Çünkü commit bir yedekleme değil, bir ANLATIDIR: "login bug’ını düzelttim" commit’i ile "yarım kalan deneme kodu" aynı kutuya girerse, altı ay sonra o hatayı `git log` ile arayan kişi hangi satırın neyi düzelttiğini ayıramaz. Java tarafında buna en yakın alışkanlık, bir PR’ı göndermeden önce IDE’de değişiklikleri gözden geçirmendir — fark şu ki Git bunu isteğe bağlı bir alışkanlık değil, akışın zorunlu bir adımı yapar. QA açısından karşılığı çok somuttur: `git add .` alışkanlığıyla staging’i atlayan bir mühendis, er ya da geç `.env` dosyasını, kişisel API token’ını veya yarım kalan bir `test.only()` satırını repoya iter — ve bu satır CI’da değil, gece build’inde ya da production’da fark edilir.

Adım 4: Working Tree, Staging Area ve Commit’i Gör

Git’in fikri oturduktan sonra tek değişikliğin paylaşılmadan önce üç local Git alanından nasıl geçtiğini izle.

git-interactive-terminal

Etkileşimli Git Terminali

git status, add, commit, branch, switch komutlarını yazarak Staging ve Commit şemasını canlı izle.

Try It Yourself: İlk güvenli commit akışı

Aşağıdaki komutları gerçek terminale geçmeden önce doğru sıraya getir.

Önce repo durumunu kontrol et

İlgili dosyayı staging area’ya al

Anlamlı mesajla commit oluştur

Son durumda working tree temiz mi bak

git-remote-origin-setup

Adım 5: Local Repo’yu origin ile GitHub’a Bağla