Yazılım Geliştiriciler İçin Git ve GitHub Kullanım Rehberi: Temel Kavramlar ve Komutlar
📂 Yazılım Öğrenme
✍️ KursSepetiPlus Editör Ekibi
Git ve GitHub Nedir? Aralarındaki Farklar Nelerdir?
Modern yazılım geliştirme süreçlerinin merkezinde sürüm kontrol sistemleri yer alır. Bu sistemler, kod tabanında yapılan her değişikliği adım adım kaydeder, geçmişe dönmeyi kolaylaştırır ve ekiplerin çakışma yaşamadan aynı projede çalışmasını sağlar. Bu alanda en yaygın kullanılan iki araç Git ve GitHub'dır; ancak ikisi sıklıkla birbiriyle karıştırılır.
Git, bilgisayarınızda yerel olarak çalışan dağıtık bir sürüm kontrol sistemidir. Dosyalarınızın geçmişini takip etmek, dallar (branch) oluşturmak ve değişiklikleri geri almak için internet bağlantısına ihtiyaç duymaz.
GitHub ise Git depolarını (repository) bulutta barındıran, web tabanlı bir platformdur. Kod paylaşımı, kod inceleme süreçleri, proje yönetimi ve açık kaynaklı projelere katkı sağlama gibi iş birliği odaklı özellikler sunar.
Temel Git Kavramları
Git komutlarını kullanmaya başlamadan önce, sistemin çalışma mantığını anlamak işinizi kolaylaştırır:
- Depo (Repository): Projenizin tüm dosyalarını ve bu dosyaların sürüm geçmişini barındıran dizindir.
- Çalışma Alanı (Working Directory): Bilgisayarınızda doğrudan üzerinde çalıştığınız ve düzenlediğiniz güncel dosyalardır.
- Hazırlık Alanı (Staging Area / Index): Bir sonraki kayıt işlemine (commit) dahil edilecek değişikliklerin toplandığı geçici alandır.
- Commit: Belirli bir anda yapılan değişikliklerin kalıcı bir kayıt (fotoğraf) olarak depoya işlenmesidir.
- Dal (Branch): Ana kod tabanından bağımsız olarak yeni özellikler geliştirmek veya hata düzeltmek için açılan paralel çalışma kollarıdır.
En Çok Kullanılan Temel Git Komutları
Günlük yazılım geliştirme sürecinde sıklıkla başvurulan temel komutlar şunlardır:
1. Projeyi Başlatma ve Klonlama
Yeni bir projede Git takibini başlatmak için dizin içerisinde şu komut çalıştırılır:
git initMevcut bir uzak depoyu (örneğin GitHub'daki bir projeyi) yerel bilgisayarınıza indirmek için klonlama komutu kullanılır:
git clone <depo-adresi>2. Değişiklikleri İzleme ve Kaydetme
Hangi dosyaların değiştiğini, hangilerinin hazırlık alanına eklendiğini görmek için durum kontrolü yapılır:
git statusDeğiştirilen belirli bir dosyayı hazırlık alanına eklemek için:
git add dosya-adi.extTüm değişiklikleri topluca hazırlık alanına eklemek için:
git add .Hazırlanan değişiklikleri açıklayıcı bir mesajla kaydetmek için commit komutu verilir:
git commit -m "Anlamlı ve açıklayıcı commit mesajı"3. Dal (Branch) Yönetimi
Yeni bir özellik geliştirirken ana dalı (genellikle main) kirletmemek adına yeni bir dal açılır:
git branch ozellik-adiAçılan dala geçiş yapmak için:
git switch ozellik-adiYeni bir dal oluşturup doğrudan o dala geçmek için pratik komut:
git checkout -b ozellik-adiGeliştirme tamamlandığında, değişiklikleri ana dalla birleştirmek için önce ana dala geçilir ve birleştirme komutu verilir:
git switch main
git merge ozellik-adi4. Uzak Depo ile Eşitleme (GitHub Entegrasyonu)
Yerel deponuzu GitHub üzerindeki bir depoya bağladıktan sonra, yereldeki commit'leri sunucuya göndermek için push komutu kullanılır:
git push origin mainUzak depodaki diğer ekip üyelerinin yaptığı güncellemeleri kendi yerel ortamınıza çekmek için:
git pull origin mainGitHub Üzerinde Ekip Çalışması: Pull Request ve Code Review
GitHub'ı yalnızca bir yedekleme alanı olmaktan çıkarıp profesyonel bir iş birliği ortamı haline getiren özellik Pull Request (PR) mekanizmasıdır.
Bir geliştirici kendi dalında işini tamamlayıp GitHub'a yüklediğinde, bu değişikliklerin ana dala eklenmesini talep etmek için bir Pull Request açar. Ekip arkadaşları bu sayfada:
- Yapılan satır bazlı değişiklikleri görüntüler.
- Kod kalitesi, güvenlik ve performans hakkında geri bildirim bırakır (Code Review).
- Varsa otomatik test sonuçlarını inceler.
- Gerekli onaylar verildikten sonra kod tek bir tıklamayla ana dala dahil edilir.
Yazılımcılar İçin Git İyi Uygulamaları (Best Practices)
Git kullanırken temiz ve sürdürülebilir bir geçmiş oluşturmak için dikkat edilmesi gereken temel prensipler:
- Sık ve Küçük Commit'ler Yapın: Haftalık büyük değişiklikleri tek bir pakette kaydetmek yerine, mantıksal olarak tamamlanan her küçük adımı ayrı commit olarak kaydedin.
- Anlaşılır Commit Mesajları Yazın: "Düzeltme yapıldı" veya "update" gibi belirsiz ifadeler yerine, "Kullanıcı girişindeki e-posta doğrulama hatası giderildi" gibi ne yapıldığını açıklayan ifadeler tercih edin.
- .gitignore Dosyasını İhmal Etmeyin: Bağımlılık klasörleri (örneğin node_modules), derleme çıktıları veya hassas API anahtarlarını barındıran çevre değişkeni dosyalarını (.env) mutlaka
.gitignoreiçine ekleyin. - Doğrudan Ana Dala (Main) Kod Yazmayın: Her zaman yeni bir görev veya hata için ayrı bir dal açıp Pull Request üzerinden birleştirme yapın.
Git ve GitHub yetkinliği, modern yazılım dünyasında opsiyonel bir beceri değil, her seviyedeki yazılımcı için vazgeçilmez bir temel araçtır. Kendi projelerinizi GitHub üzerinde barındırarak bu akışları düzenli pratik etmeniz, profesyonel hayata adaptasyonunuzu hızlandıracaktır.
Python'u daha hızlı öğrenmek ister misin?
Alanında uzman eğitmenlerle birebir ders alarak süreci hızlandırabilirsin.
🚀 Python eğitmenlerini incele