- Katılım
- 21 May 2023
- Mesajlar
- 602
- Tepki
- 17
- Puan
- 18
İş ilanlarında, eğitim listelerinde ve proje sayfalarında iki isim çoğu zaman yan yana geçiyor: Git ve GitHub. Benzer yazılıyorlar, aynı cümlede duruyorlar, ama biri bilgisayarınızda çalışan bir program, diğeri internette duran bir hizmet.
Bu yazı ikisinin ne olduğunu, aralarındaki farkın nereden geldiğini ve deponun neden hem sizde hem sunucuda durabildiğini iki projenin kendi belgelerine dayanarak anlatıyor.
Önce Git: bilgisayarınızdaki sürüm kontrolü
Git'in kendi kitabındaki tanıma göre Git dağıtık bir sürüm kontrol sistemi ve veriyi diğer araçlardan farklı düşünüyor: değişiklik farkları yerine küçük bir dosya sisteminin anlık görüntüleri dizisi olarak saklıyor. Her commit işleminde, o an dosyalarınızın nasıl göründüğünün resmi çekiliyor ve bu görüntüye bir referans tutuluyor.
Belgenin altını çizdiği ikinci nokta yerellik: işlemlerin neredeyse tamamı yalnız yerel dosyalarla yapılıyor, ağ gecikmesi devreye girmiyor. Proje geçmişinin tamamı diskinizde durduğu için geçmişe bakmak, fark almak ve commit atmak internet olmadan da mümkün.
Üçüncüsü bütünlük: her şey saklanmadan önce sağlama toplamıyla, SHA-1 özetiyle işaretleniyor. Böylece bir dosyanın fark edilmeden bozulması ya da değiştirilmesi mümkün olmuyor.
Üç durum ve üç bölüm
Git'in günlük kullanımını anlaşılır kılan şey, dosyaların üç durumda bulunması:
- Değiştirilmiş (modified): Dosya değişti ama henüz commit edilmedi.
- Hazırlanmış (staged): Değişiklik, bir sonraki commit'e girmek üzere işaretlendi.
- Commit edilmiş (committed): Veri yerel veri tabanında güvenle saklandı.
Bunlara karşılık gelen üç bölüm de var: üzerinde çalıştığınız çalışma ağacı, bir sonraki commit'in bilgisini tutan hazırlık alanı ve üst veriler ile nesne veri tabanının durduğu Git dizini. Akış hep aynı: dosyayı değiştirirsiniz, değişikliği seçerek hazırlarsınız, commit ile anlık görüntüyü kalıcı hâle getirirsiniz.
Git'in temel kullanımına Git'i tanıttığımız yazıdan bakabilirsiniz.
GitHub ne demek?
GitHub'ın kendi belgesi ayrımı sade koyuyor: Git, dosyalardaki değişiklikleri izleyen bir sürüm kontrol sistemi; GitHub ise yazılım geliştirme sürecinin tamamını destekleyen bir platform.
Belgeye göre GitHub, Git projelerini yani depoları bulutta barındırıyor ve kodun merkezi bir konumda saklanıp yönetilmesini sağlıyor. Üstüne planlama ve işbirliği araçları geliyor: ekipler proje yönetimi yapabiliyor, değişiklikleri pull request üzerinden inceleyebiliyor, yapılandırılmış geri bildirim verebiliyor.
Tek cümlelik ayrım' Alıntı:Git olmadan GitHub'ın saklayacağı bir şey olmaz; GitHub olmadan da Git çalışmaya devam eder. Biri sürüm kontrolünün kendisi, diğeri o kontrolün etrafına kurulmuş ortak çalışma alanı.
Depo neden hem sizde hem sunucuda?
Dağıtık olmanın anlamı burada ortaya çıkıyor. Geçmişin tamamı yerel diskte durduğu için, sunucudaki kopya bir yedek değil eşitlerden biri. Ekip çalışmasında bu kopya ortak buluşma noktası oluyor: herkes kendi bilgisayarında commit atıyor, sonra değişiklikler ortak depoda birleştiriliyor.
Bu yüzden bir hata yaptığınızda çözüm genellikle yereldedir. Yanlış bir commit'i geri almanın yollarını revert, reset ve reflog karşılaştırmasını yaptığımız yazıda ele almıştık.
Yerel depo ile uzak depo nasıl buluşuyor?
Ekipteki herkesin elinde geçmişin tam kopyası olduğu için, ortak depo bir otorite değil buluşma noktası işlevi görüyor. Kendi bilgisayarınızda biriken commit'leri oraya gönderiyor, başkalarının biriktirdiklerini oradan alıyorsunuz.
Bu düzenin pratik sonucu şu: internet kesildiğinde çalışmanız durmuyor, yalnız paylaşım erteleniyor. Aynı dosyaya iki kişi dokunduğunda ise birleştirme kararı, gönderim anında değil, kopyaların buluştuğu anda veriliyor.
Platform tarafındaki ek özellikler
GitHub'ın sunduğu araçlar sürüm kontrolünün dışında kalıyor ama günlük işi doğrudan etkiliyor: kod incelemesi, görev takibi, otomatik çalıştırılan iş akışları ve statik sayfa yayını bunların arasında. Yayın tarafında bir aksaklık yaşarsanız bakılacak ayarları GitHub Pages sorunlarını incelediğimiz yazıda anlatmıştık.
Sık Sorulan Sorular
GitHub ne demek?
Kendi belgesine göre yazılım geliştirme sürecinin tamamını destekleyen bir platform; Git depolarını bulutta barındırıyor ve ekiplere planlama ile işbirliği araçları sunuyor.
GitHub kullanmadan Git kullanılabilir mi?
Evet. Sürüm kontrolünün kendisi yerelde çalışıyor; platform yalnız ortak depo, inceleme ve planlama tarafını ekliyor.
Git neden "dağıtık" olarak anılıyor?
Proje geçmişinin tamamı yerel diskte durduğu için işlemlerin neredeyse hepsi ağ olmadan, yalnız yerel dosyalarla yapılabiliyor.
Git veriyi nasıl saklıyor?
Değişiklik farkları yerine anlık görüntüler olarak. Her commit'te dosyaların o anki hâlinin resmi çekiliyor ve bu görüntüye referans tutuluyor.
Commit öncesi "staged" ne demek?
Değişikliğin bir sonraki commit'e dahil edilmek üzere işaretlenmiş olması. Değiştirilmiş, hazırlanmış ve commit edilmiş şeklindeki üç durumun ortasıdır.
Özetle
Git, veriyi anlık görüntüler hâlinde saklayan, işlemlerin çoğunu yerelde yapan ve her nesneyi sağlama toplamıyla işaretleyen dağıtık bir sürüm kontrol sistemi. GitHub ise bu depoları bulutta barındıran, üzerine inceleme ve planlama araçları ekleyen platform. Öğrenme sırası da bu: önce üç durum ve üç bölüm, sonra ortak depoda çalışma.
Şu an bir projede sürüm kontrolü kullanıyor musunuz, yoksa dosyaları tarih ekleyerek mi çoğaltıyorsunuz?
Güncelleme: 26 Ağustos 2026.
Dijital Dünyanıza Yön Veren Pusula