Git ve GitHub Nedir? Hiç Bilmeyenler İçin İlk Adım
Git ile GitHub arasındaki farkı; repo, commit, branch ve push kavramlarını günlük örneklerle, sıfırdan öğrenin.
Bir proje klasörünüz var ve her değişiklikten önce proje-son, proje-son-2, proje-gercek-son diye kopyalar oluşturuyorsunuz. Bir süre sonra hangi dosyanın neden değiştiğini hatırlamak zorlaşıyor. Git tam bu noktada, değişiklikleri takip etmek için kullanılan bir araç olarak karşımıza çıkıyor. GitHub ise Git ile tutulan projeleri çevrim içi barındırmaya ve başkalarıyla çalışmaya yardımcı olan bir platform.

Bu yazıda henüz hiçbir şey yüklemeyeceğiz. Önce kelimeleri anlaşılır hâle getirelim; sonraki adımlarda hangi düğmeye ya da komuta neden ihtiyaç duyduğunuzu böylece bileceksiniz.
Git: projenin değişiklik geçmişi
Git bir sürüm kontrol sistemidir. Projenizdeki değişiklikleri seçip kaydetmenizi ve geçmişi incelemenizi sağlar. Bir kaydı oluşturduğunuzda yalnızca mevcut dosyaların adı değil, içeriğinin o andaki durumu da geçmişin bir parçası olur. Böylece örneğin bir sayfanın geçen hafta nasıl göründüğüne bakabilir veya bir değişikliğin hangi aşamada yapıldığını araştırabilirsiniz.
Git bilgisayarınızda çalışabilir; geçmiş oluşturmak için her seferinde internet bağlantısına veya GitHub hesabına ihtiyacınız yoktur. Ancak dosyaları başka bir bilgisayara ya da ekibe ulaştırmak için uzak bir konum kullanmanız gerekir.
GitHub: projenin paylaşılabildiği yer
GitHub, Git depolarını çevrim içi tutabileceğiniz servislerden biridir. Bir projeyi burada saklayabilir; erişim ayarlarına bağlı olarak kendiniz, ekibiniz veya herkesle paylaşabilirsiniz. GitHub ayrıca sorun takibi, kod inceleme ve otomasyon gibi özellikler sunar.
Önemli ayrım şu: Git bir araçtır, GitHub ise Git depolarıyla çalışılan bir platformdur. Git kullanmak için GitHub zorunlu değildir; başka uzak sunucular da kullanılabilir. GitHub hesabı açmak da tek başına bilgisayarınızdaki klasörleri otomatik olarak yüklemez.
Repo, commit ve branch ne demek?
Karşınıza en sık çıkacak üç kavramı bir örnek üzerinden düşünelim. Diyelim ki kişisel web sitenizin dosyaları bir projede duruyor:
- Repository (repo/depo): Projenizin dosyalarını ve Git geçmişini bir arada tutan çalışma alanı.
- Commit: Seçtiğiniz değişiklikleri açıklamayla birlikte geçmişe kaydetme işlemi ve oluşan kayıt.
- Branch (dal): Ana çalışmayı doğrudan değiştirmeden ayrı bir çizgide geliştirme yapmanıza yardımcı olan işaretçi.
Örneğin iletişim sayfasını düzenleyip yalnızca ilgili dosyaları bir commit olarak kaydedebilirsiniz. Daha sonra ayrı bir dalda yeni bir menü deneyebilir, değişiklik hazır olduğunda ana dala birleştirmeyi değerlendirebilirsiniz. Bir dal, projenizin internette herkes tarafından görüldüğü anlamına gelmez; erişimi deponun ve hesabın ayarları belirler.
Kaydetmekle GitHub'a göndermek aynı şey değil
Çalışma sırası genellikle şöyledir: dosyayı düzenlersiniz, Git ile hangi değişiklikleri kayda alacağınızı seçersiniz ve bir commit oluşturursunuz. Bu kayıt önce yerel deponuzdadır. Ardından push işlemiyle commit'leri yetkiniz olan uzak depoya gönderebilirsiniz. Ters yönde, uzak taraftaki değişiklikleri almak için fetch veya duruma göre pull kullanılır.
Bir metin düzenleyicide Kaydet demek, dosyayı diske yazar. Bu otomatik olarak Git commit'i oluşturmaz. Git commit'i oluşturmak da tek başına GitHub'a yükleme yapmaz. Üç işlemi birbirinden ayırmak, başlangıçtaki pek çok karışıklığı çözer.
Her depo herkese açık mı?
Hayır. GitHub'da yeni depo oluştururken görünürlük seçebilirsiniz. Public bir depodaki içerik başkalarınca görüntülenebilir; private depoya erişim ise yetkilendirilmiş hesaplarla sınırlanır. Private bir depo bile parola veya API anahtarı saklamak için güvenli bir kasa yerine geçmez: erişim yetkileri değişebilir, dosyalar yanlışlıkla paylaşılabilir.
Gerçek müşteri kodu, veritabanı yedeği, .env dosyası ve erişim anahtarlarını herhangi bir yere göndermeden önce sahiplik ve izinleri kontrol edin. Alıştırmaya içinde gizli bilgi olmayan küçük bir örnekle başlamak en güvenlisidir.
İlk pratikte ne yapacağız?
Sıradaki aşamada GitHub üzerinde bir depo açıp basit bir README dosyasıyla başlayabilirsiniz. Sonra Git'in bilgisayarınızda nasıl çalıştığını ve güvenli bir örneği nasıl gönderdiğinizi ayrı ayrı öğrenmek daha kolay olur. Bir kavramı öğrenirken gerçek projenizin üzerinde deneme yapmak zorunda değilsiniz.
Kısaca: dosya klasörünüz proje, Git bu projenin seçtiğiniz değişikliklerinin geçmişi, GitHub da bu geçmişi barındırıp paylaşabileceğiniz yerlerden biridir. Bu ayrım oturduğunda repo, commit ve push sözcükleri artık korkutucu görünmez.
Kaynaklar: GitHub: Git'e giriş · GitHub: Hello World
BİRLİKTE ÖĞRENELİM
Yorumlar
Henüz yorum yok. Düşünceni paylaşarak sohbeti başlatabilirsin.
Bir Yorum Bırak.
Katkılarını ve deneyimlerini duymak isterim. Yorumlar yayınlanmadan önce incelenir.