Git ve GitHub: Yazılım Geliştirme Dünyasının Değişmez Araçları

Cengiz Akarsu
4 min readApr 21, 2024

--

Tortoise SVN, Kodları veya farlı dosyaları ortak klasörlerde tutma gibi işlemler eskide kaldı. Elbette SVN hala kullanılıyor ve kullanılmasında da herhangi bir sorun yok ancak gelin biz bu yazımızda daha yenilikçi ve özellikle yazılım dünyası için etkisi çok daha büyük olan kavramları inceleyelim.

Git ve GitHub, modern yazılım geliştirme dünyasının en temel araçlarından biri haline gelmiştir. Yazılım projelerinin takım halinde geliştirilmesini kolaylaştıran ve sürüm kontrolünü sağlayan bu teknolojiler, birçok geliştirici için vazgeçilmezdir. Peki, Git nedir ve GitHub ne işe yarar? E çok soru sorduk değil mi şimdi tanımlara ve oradan da örneklere geçelim.

Git: Yazılım Geliştirme Süreçlerini Yönetmenin Temel Aracı

Git, yazılım geliştirme süreçlerini kolaylaştıran bir sürüm kontrol sistemidir. Linus Torvalds tarafından geliştirilen Git, dağıtık bir yapıya sahiptir ve her katkıda bulunan geliştiricinin lokal bir kopyasını tutar. Bu sayede, herhangi bir zamanda geri dönülebilir ve değişiklikler izlenebilir.

Yazılım projelerinde, farklı geliştiricilerin aynı dosyalar üzerinde çalışması gerekebilir. Git, bu süreci yönetmek için bir dizi komut ve işlem sunar. Örneğin, bir geliştirici proje dosyalarını değiştirdiğinde, bu değişiklikleri işlemeye hazır hale getirmek için “commit” komutunu kullanır. Bu değişiklikler, tarihçeye kaydedilir ve gerektiğinde geri alınabilir.

Git’in en güçlü yanlarından biri de dallanma ve birleştirme (branching and merging) özelliğidir. Bu özellik, aynı projenin farklı versiyonlarının aynı anda geliştirilmesine olanak tanır. Her bir dal, bağımsız bir çalışma ortamı sunar ve daha sonra başka bir dala birleştirilebilir.

GitHub: Yazılım Geliştirme Topluluğunun Buluşma Noktası

GitHub, Git tabanlı yazılım geliştirme platformları arasında en popüler olanıdır. Proje paylaşımı, işbirliği, geri bildirim alma ve sürüm kontrolü gibi birçok özelliği içerir. Geliştiriciler, GitHub üzerinden projelerini barındırabilir, paylaşabilir ve işbirliği yapabilirler.

GitHub’ın en dikkat çekici özelliklerinden biri, halka açık ve özel depo seçeneklerine sahip olmasıdır. Halka açık depolar, herkesin erişimine açıktır ve yazılım geliştirme topluluğuyla paylaşılabilir. Özel depolar ise sadece belirli kullanıcılar veya ekipler tarafından erişilebilir ve yönetilir.

Ayrıca, GitHub, “issues” ve “pull requests” gibi özelliklerle geliştiriciler arasında iletişimi kolaylaştırır. Issues, bir projede çözülmesi gereken sorunları ve önerileri takip etmek için kullanılırken, pull requests ise değişiklik önerilerini tartışmak ve projeye entegre etmek için kullanılır.

Örneklerle Git’i İnceleyelim

  1. Kod Deposu Oluşturma (git init): Bu komut ile mevcut dizinde yeni bir Git deposu oluşturur:
git init

2. Değişiklikleri İşleme (git add): Bu komut, belirtilen dosyayı ara alan (staging area) olarak işaretler ve değişiklikleri takip etmek için hazır hale getirir.

git add dosya.txt

3. Değişiklikleri Kaydetme (git commit): Bu komut, üzerinde değişiklik geliştirme yapılan dosyaların mevcut durumunu kaydeder ve bir “commit” oluşturur. “-m” parametresi, bir commit mesajı eklemenizi sağlar.

git commit -m "Değişiklikleri kaydetme"

4. Değişiklikleri Kontrol Etme (git status): Bu komut, çalışma dizinindeki değişiklikleri ve staging area’ daki dosyaları listeler.

git status

5. Dallanma (Branch) Oluşturma (git branch): Bu komut, yeni bir dal oluşturur. Çalışmalarınıza o anda yeni dal oluşturduğunuz halinden devam edebilirsiniz.

git branch yeni_dal

6. Dallar Arasında Geçiş Yapma (git checkout): Bu komut, belirtilen dala geçiş yapar. Böylece geliştirmelerinizi o branch üzerinden devam ettirebilirsiniz.

git checkout yeni_dal

7. Dalları Birleştirme (git merge): Bu komut, belirtilen daki dalı mevcut dala birleştirir.

git merge dal_adi

8. Uzak Depoları Senkronize Etme (git push ve git pull): Bu komut, yerel deponuzdaki değişiklikleri uzak sunucuya gönderir.

git push origin ana_dal

Ana komutları gördüysek, daha fazla komutların olduğunu bilmemizde yarar var. Kullandığım farklı komutları da liste olarak yazıyorum:

  • git config: Kullanıcı adı ve e-posta gibi bilgileri girmemizi sağlar.
  • git pull: Uzak sunucudaki değişiklikleri veya herhangi bir projeyi localimize çekmek için kullanılır.
  • git --help: Yardımcı kütüphane işinize yarayacaktır.
  • git --help init: Yardımı yalnızca istediğimiz komutlar için sınırlamamıza olanak sağlar.
  • git branch -d master: -d ile branchi silebiliriz. Burada master silinmiştir! Çalıştırmadan aman dikkat :)
  • git log develop..main: Develop branch’inin main’den “commit bazında” farklılıklarını gösterir.
  • git diff develop..main: Dosyalardaki farklılıkları gösterir.
  • git log: O anda bulunulan branchteki işlemleri gösterir (commit, değişiklik…vb)
  • git shortlog: git log’un daha özeti şekilde farklılıkları getirir.

Ez cümle

Git ve GitHub, modern yazılım geliştirme süreçlerinin vazgeçilmez araçlarıdır. Proje yönetimini kolaylaştırırken, işbirliğini artırır ve yazılım geliştirme topluluğunu bir araya getirirler. Her iki araç da geliştiricilerin verimliliğini artırırken, projelerin daha iyi bir şekilde yönetilmesini sağlar. Bu nedenle, her yazılım geliştiricisinin bu teknolojilere hakim olması önemlidir.

Herkese mutlu kodlamalar dilerim!

Güç Sizinle Olsun…🚀

--

--