Git, versiyon kontrol sistemi olarak kodlarımızı takip etmemizi sağlar. Bu sistemin mantığını anlamak için dört temel alan ve dosya durumlarını anlamak gerekiyor:
1. Working Directory (Çalışma Dizini)
Bu, bilgisayarındaki proje klasörüdür. Kodları burada düzenlersin. Yeni dosya eklersin, var olanı değiştirirsin.
2. Staging Area (Hazırlık Alanı)
Değişiklik yaptığın dosyaları commit’lemek için önce staging area’ya alman gerekir. Bu alan, “Bu dosyaları bir sonraki commit’e ekleyeceğim” dediğin yer.
3. Local Repository (Yerel Depo)
git commit komutu ile staging area’daki değişiklikler local repository’ye kaydedilir. Bu senin bilgisayarında tutulan Git geçmişidir.
4. Remote Repository (Uzak Depo)
Bu, GitHub, GitLab gibi uzak sunucularda bulunan projendir. git push komutu ile local repository’deki commit’leri bu uzak sunucuya gönderirsin. Diğer kullanıcılarla senkronizasyon burada olur.
Dosya Durumları (File Status)
Git, her dosyanın hangi aşamada olduğunu takip eder:
Durum
Açıklama
Untracked
Git’in henüz takip etmediği dosya. Yeni oluşturulmuş olabilir.
Unmodified
Git tarafından takip ediliyor ve üzerinde değişiklik yapılmamış.
Modified
Takip edilen dosyada değişiklik yapılmış ama staging’e alınmamış.
Staged
Değişiklik staging area’ya alınmış ve commit için hazır.
Branch (Dal)
Branch, projenin ayrı bir kopyasıdır. Ana dal genelde main veya master olur. Yeni bir özellik üzerinde çalışmak için feature-x gibi yeni bir branch açarsın. Böylece ana dal etkilenmez.
git checkout -b feature-login
Fork
Fork, başka birinin projesinin bir kopyasını kendi GitHub hesabına almaktır. Genelde açık kaynak projelerde kullanılır. Projeyi geliştirip Pull Request (PR) ile katkıda bulunursun.
HEAD
Şu anda hangi commit veya branch üzerinde çalıştığını gösterir.