Git, GitHub Nedir? Nasıl Kullanılır?
Git & GitHub Nedir?
Git, bir veri dosyasının değişimlerini izlemek ve kontrol etmek için kullanılan bir dağıtık sürüm kontrol sistemidir. GitHub ise, Git üzerine kurulu bir web tabanlı hizmettir ve kullanıcıların kodlarını paylaştıkları ve geliştirdikleri bir ortam sağlar.
Git, yerel olarak bilgisayarınızda kodunuzu depolamanıza ve yönetmenize olanak tanır, ancak GitHub sayesinde bu kodlarınızı dünya genelindeki diğer kullanıcılarla paylaşabilirsiniz. Bu sayede kolayca ekip çalışması yapabilir ve projelerinizi daha da geliştirebilirsiniz.
Git ve GitHub arasındaki en belirgin fark, Git'in yerel bir sürüm kontrol sistemi olması ve GitHub'ın ise bu sistemin web tabanlı bir hizmeti olmasıdır. Git, yalnızca bilgisayarınızda kodlarınızı yönetmenize yardımcı olurken, GitHub ise bu kodlarınızı lokasyon bağımsız olarak diğer kullanıcılarla paylaşmanıza ve en önemlisi ekip çalışması yapmanıza olanak tanır.
Bu seri için devam yazım olan Git'te Pull Request Nasıl Yapılır: Adım Adım PR yazıma da göz atmanızı öneririm.
Git Kurulumu
Git'i indirmek için, resmi Git web sayfasına gidin (veya buraya tıklayın) ve işletim sisteminize uygun bağlantı üzerinden indirin. İndirme işlemini tamamladıktan sonra, yükleme dosyasını çalıştırın ve kurulum sihirbazını izleyin.
Kurulum tamamlandıktan sonra, Git'i yapılandırmak için aşağıdaki komutları kullanabilirsiniz.
1git config --global user.name "Adınız Soyadınız"
2git config --global user.email "email@adresiniz.com"
Yukarıdaki komutları çalıştırdığınızda, bu kullanıcı adı ve mail adresi tüm Git projelerinizde kullanılır hale gelecektir.
GitHub Nedir?
GitHub, Git depolama ve yönetim sistemini kullanan ve açık kaynaklı projelerin yönetimini hedefleyen bir web platformudur. Git ile yazılmış kodlarınızı depolayabilir, paylaşabilir ve diğer geliştiricilerle birlikte çalışabilirsiniz. GitHub ayrıca, kodunuzu inceleyebilme, hataları tespit etme ve düzeltme gibi işlemleri de destekler.
GitHub, açık kaynaklı projeler için özellikle popülerdir, ancak kapalı kaynaklı projeler için de kullanılabilir. Özel depolama alanı ve özel projeler için ücretli abonelikler sunar. GitHub, birçok geliştirici tarafından kullanılan ve birçok projenin yönetiminde kullanılan bir platformdur.
Git Komut Rehberi
Git kurulumunu tamamladıktan sonra artık GitHub kullanmaya da başlayabiliriz. GitHub'ın resmi Training GitHub dokümanı başlangıç için iyi bir seçim olur.
Ek olarak, konu komutlar üzerinde çalışma olduğu zaman, pratik yapmak için eşsiz bir araç mevcut. Git Explorer bağlantısına giderek repo "clone"lamayı, "commit"lemeyi ve çok daha fazlası hakkında kullanım örneklerini kolayca edinebilirsiniz.
GitHub'da en sık kullanılan komutlardan bazıları:
1. git clone
Bu komut, bir repositorydeki projeyi kopyalar. Yani, projenin tamamını veya belirli bir branchini (dalını) indirmenizi sağlar.
1git clone https://github.com/kullanici-adi/proje-adi.git
Bu örnekte, "https://github.com/kullanici-adi/proje-adi.git" adresindeki projeyi yerel makinenize klonlamak için git clone komutunu kullanıyoruz.
2. git pull
Bu komut, repodaki en son değişiklikleri almanızı sağlar. Yani, diğer kullanıcıların yaptığı güncellemeleri yerel kopyanıza getirir.
1git pull origin main
Bu örnekte, uzak depodaki "main" branch'deki en son değişiklikleri almak için git pull komutunu kullanıyoruz.
3. git push
Bu komut, yerelde yaptığınız değişiklikleri repoya göndermenizi sağlar. Yani, kendi çalışmalarınızı diğer kullanıcılarla paylaşabilirsiniz.
1git push -u origin main
Bu örnekte, yereldeki değişiklikleri uzak depodaki "main" branchine göndermek için git push komutunu kullanıyoruz.
4. git add
Bu komut, değişiklikleri takip etmek istediğiniz dosyaları "staging area" olarak adlandırılan bir alana eklemenizi sağlar. Yani, Git'e hangi dosyaların takip edileceğini söylersiniz.
1git add dosya.js
Bu örnekte, "dosya-adi.js" adlı dosyayı değişiklikleri takip etmek için git add komutunu kullanıyoruz.
Tüm değişiklikleri eklemek için:
1git add .
5. git commit
Bu komut, "staging area"da bulunan değişiklikleri yerel depoya kaydeder. Yani, dosyaların belirli bir anlık görünümünü saklar. Push işleminden bir önceki adımdır.
1git commit -m "Değişiklik notu"
Bu örnekte, yapılan değişiklikleri "Değişiklik notu" başlığıyla yerel depoya kaydetmek için git commit komutunu kullanıyoruz.
6. git branch
Projedeki mevcut branchleri (dalları) listelemek veya yeni bir branch oluşturmak için kullanılır.
1git branch yeni-branch
Bu örnekte, "yeni-branch" adında yeni bir branch oluşturmak için git branch komutunu kullanıyoruz.
7. git checkout
Bu komut, farklı bir branch'e geçmek veya mevcut dosyanın farklı bir sürümüne geçmek için kullanılır.
1git checkout yeni-branch
Bu örnekte, "yeni-branch" adlı branch'e geçmek için git checkout komutunu kullanıyoruz.
Ana branch'ten yeni bir branch oluşturmak, yani ana branch'i birebir yeni branchte kopyalamak:
1git checkout -b yeni-branch-adı ana-branch-adı
Burada, git checkout -b komutu, yeni bir branch oluştururken aynı zamanda o branch'e geçiş yapmanızı sağlar. yeni-branch ise oluşturmak istediğiniz yeni branch'in ismidir.
8. git merge
Bu komut, farklı branch'lerdeki değişiklikleri birleştirmenizi sağlar. Yani, farklı çalışma hatlarını tek bir hat üzerinde birleştirir.
1git merge ana-branch yeni-branch
Bu örnekte, "ana-branch" ve "yeni-branch" branchlerini (dallarını) değişiklikleri birleştirmek için git merge komutunu kullanıyoruz.
Kısaltmalar (flag) Ne Anlama Geliyor?
-u (veya --update): Bu flag, git push komutu ile kullanılır ve uzak sunucuya yerel branch'teki değişiklikleri gönderirken aynı adı taşıyan bir branch olup olmadığını kontrol eder. Eğer aynı adı taşıyan bir başka branch bulunursa, yerel branch ile onu ilişkilendirir (tracking) ve sonraki push işlemlerinde hedef branch olarak otomatik olarak bu uzak branch'i kullanır.
-m (veya --message): Bu flag, git commit komutu ile kullanılır ve bir commit mesajı eklemek için kullanılır. Mesajı komut satırında belirterek, direkt olarak commit işlemi gerçekleştirilir. Örneğin: git commit -m "Değişiklikler eklendi".
-b (veya --branch): Bu flag, git checkout veya git branch komutları ile kullanılır ve bir branch oluştururken veya bir branch'a geçerken kullanılır. Örneğin: git checkout -b yeni-branch komutu, hem yeni bir branch oluşturur hem de o branch'e geçiş yapar.
-d (veya --delete): Bu flag, git branch komutu ile kullanılır ve bir branch'i siler. Örneğin: git branch -d silinecek-branch komutu, silincek-branch adındaki branch'i siler.
-f (veya --force): Bu flag, git push komutu ile kullanılır ve uzak sunucuya yerel branch'teki değişiklikleri zorla (force) gönderir. Özellikle, geçmişte yapılmış bir push işleminin tersine çevrilmesi gerektiğinde veya zorla güncelleme yapılması gerektiğinde kullanılır. Ancak dikkatli kullanılmalıdır, çünkü uzak sunucuda yapılan değişikliklerin üzerine yazılabilir ve veri kaybına neden olabilir.
Pull Request Nedir?
Pull request (ya da çekme isteği, kısaca PR), yazılım geliştirme sürecinde ekip içi işbirliğini sağlayan ve kod incelemelerini kolaylaştıran önemli bir araçtır. Sadece ekip içi değil, açık kaynaklı projelerde ekip dışından katkı sağlamak isteyen geliştiricilerin de kullandığı bir araçtır.
Genellikle Git gibi versiyon kontrol sistemlerinde kullanılan Pull Request, yeni bir kod değişikliğinin incelenmesi ve onaylanması sürecini yönetir. Bu şekilde projeye katkı sağlamak isteyen ekip üyelerinin ya da geliştiricilerin, projenin sahibine değişiklikleri önerir ve projenin sahibi bu değişiklikleri projeye dahil etmek veya reddetmek için karar verir.
Pull Request ile ilgili daha detaylı incelemek için, Git'te Pull Request Nasıl Yapılır: Adım Adım PR yazıma göz atmanızı öneririm.
Sonuç
Taban olarak dağıtık bir sistem olan Git, yazılım geliştirme süreçlerinde oldukça kullanışlı bir araçtır. İşbirliği içinde çalışan geliştiriciler, Git sayesinde aynı projeyi kolayca düzenleyebilir, değişiklikleri takip edebilir ve geri alabilirler. Ayrıca, Git'in merkezi olmayan yapısı sayesinde projelerin kaybolması veya bozulması gibi riskler en aza indirgenir.
Git'in kullanımı, öğrenmesi kolay ve uygulaması basittir. Git komutları, kısa ve anlaşılır olması nedeniyle hızlı bir şekilde öğrenilebilir. Bu sayede, özellikle yazılım geliştirme süreçlerinde proje yönetimini kolaylaştırmak ve işbirliğini artırmak isteyen geliştiriciler, Git'i tercih ederler.
Sonuç olarak, Git yazılım geliştirme süreçlerinde kullanışlı ve etkili bir araçtır. Hem bireysel kullanıcılar hem de işletmeler tarafından yaygın bir şekilde kullanılmaktadır. Git'in kolay öğrenilebilir olması, kısa ve anlaşılır komutları ve merkezi olmayan yapısı, geliştiricilerin işbirliği yapmalarını kolaylaştırmaktadır. Bu nedenle, Git, yazılım geliştirme süreçlerinde vazgeçilmez bir araçtır.
Bu seri için devam yazım olan Git'te Pull Request Nasıl Yapılır: Adım Adım PR yazıma da göz atmanızı öneririm.
Referanslar

Yazılım Mühendisi — Dijital Zanaatkâr
Karmaşık sorunlara zarif çözümler üretmekten keyif alan, tutkulu bir yazılım mühendisi. Kodlamanın ötesinde, teknoloji, sanat ve insan bilincinin kesişim noktalarını keşfetmekle derinden ilgileniyor.