Skip to main content
Yazılım Geliştirme

Git ve GitHub Kullanım Rehberi: Versiyon Kontrolü

Mart 06, 2026 6 dk okuma 27 views Raw
Ayrıca mevcut: en
Git ve GitHub versiyon kontrolü yazılım geliştirme
İçindekiler

Git Nedir ve Neden Önemlidir?

Git, 2005 yılında Linux çekirdeğinin yaratıcısı Linus Torvalds tarafından geliştirilen dağıtık bir versiyon kontrol sistemidir. Yazılım geliştirme sürecinde kodunuzun her değişikliğini takip eder, geçmişe dönmenizi sağlar ve ekip arkadaşlarınızla aynı proje üzerinde sorunsuz çalışmanıza olanak tanır.

Versiyon kontrolü olmadan yazılım geliştirmek, bir kitabı yazmak ve hiçbir taslağı saklamadan ilerlemek gibidir. Hata yaptığınızda geri dönecek bir noktanız olmaz, farklı fikirleri denemek riskli hale gelir ve birden fazla kişiyle çalışmak neredeyse imkansızlaşır. Git, tüm bu sorunlara zarif çözümler sunar.

Git Kurulumu ve İlk Yapılandırma

Git Kurulumu

Git'i kullanmaya başlamak için öncelikle bilgisayarınıza kurmanız gerekir. İşletim sisteminize göre kurulum adımları şu şekildedir:

  • Windows: git-scm.com adresinden indirici dosyasını indirip çalıştırın. Varsayılan ayarlarla kurulum yapabilirsiniz.
  • macOS: Terminal'de brew install git komutunu çalıştırın veya Xcode Command Line Tools ile otomatik olarak yükleyin.
  • Linux: Dağıtımınıza göre sudo apt install git (Debian/Ubuntu) veya sudo dnf install git (Fedora) komutunu kullanın.

İlk Yapılandırma

Git kurulumundan sonra kimliğinizi tanımlamanız gerekir. Bu bilgiler her commit'inizde kaydedilir ve değişikliklerin kime ait olduğunu gösterir:

git config --global user.name "Adınız Soyadınız"
git config --global user.email "[email protected]"

Bu yapılandırma yalnızca bir kez yapılır ve tüm projelerinizde geçerli olur. Belirli bir proje için farklı bilgiler kullanmak isterseniz --global parametresini kaldırmanız yeterlidir.

Temel Git Komutları

Yeni Bir Depo Oluşturma

Git ile çalışmaya başlamak için bir depo (repository) oluşturmanız gerekir. Mevcut bir klasörü Git deposuna dönüştürmek için o klasörde şu komutu çalıştırın:

git init

Bu komut, klasörünüzde gizli bir .git dizini oluşturur. Tüm versiyon geçmişi bu dizinde saklanır.

Değişiklikleri Takip Etme

Git'in temel iş akışı üç aşamadan oluşur: çalışma dizini, hazırlama alanı (staging area) ve depo. Bu aşamalar arasında geçiş yapmak için şu komutları kullanırsınız:

  1. git status — Değişikliklerin durumunu görüntüler
  2. git add dosya.txt — Belirli bir dosyayı hazırlama alanına ekler
  3. git add . — Tüm değişiklikleri hazırlama alanına ekler
  4. git commit -m "Açıklayıcı mesaj" — Hazırlanan değişiklikleri kaydeder

Geçmişi İnceleme

Projenizin geçmişini incelemek için git log komutunu kullanabilirsiniz. Bu komut, tüm commit'leri tarih sırasına göre listeler. Daha kompakt bir görünüm için git log --oneline tercih edilebilir.

git log --oneline --graph --all

Bu komut, tüm dalları grafik olarak gösterir ve projenizin gelişim sürecini görsel olarak takip etmenizi sağlar.

Branch (Dal) Yönetimi

Branch'ler Git'in en güçlü özelliklerinden biridir. Ana kodunuzu bozmadan yeni özellikler geliştirmenize, hataları düzeltmenize veya deneysel değişiklikler yapmanıza olanak tanır.

Branch Oluşturma ve Geçiş Yapma

Yeni bir branch oluşturmak ve o branch'e geçmek için şu komutları kullanabilirsiniz:

git branch yeni-ozellik
git checkout yeni-ozellik

Bu iki komutu tek satırda birleştirebilirsiniz:

git checkout -b yeni-ozellik

Modern Git sürümlerinde git switch komutu da kullanılabilir:

git switch -c yeni-ozellik

Branch Birleştirme (Merge)

Bir branch üzerindeki çalışmanız tamamlandığında, değişiklikleri ana branch'e birleştirmeniz gerekir:

git checkout main
git merge yeni-ozellik

Birleştirme işlemi sırasında çakışmalar (conflicts) oluşabilir. Git, çakışan dosyaları işaretler ve sizden manuel olarak düzeltmenizi ister. Çakışmaları çözdükten sonra değişiklikleri commit'lemeniz yeterlidir.

Branch Stratejileri

Profesyonel projelerde yaygın olarak kullanılan branch stratejileri şunlardır:

  • Git Flow: main, develop, feature, release ve hotfix branch'lerini kullanan kapsamlı bir strateji
  • GitHub Flow: Daha basit bir yaklaşım; main branch'ten feature branch'ler oluşturulur ve pull request ile birleştirilir
  • Trunk-Based Development: Tüm geliştiriciler doğrudan ana branch üzerinde küçük ve sık commit'ler yapar

GitHub ile Uzak Depo Yönetimi

GitHub, Git depolarınızı bulutta barındırmanıza ve ekip arkadaşlarınızla paylaşmanıza olanak tanıyan bir platformdur. Açık kaynak projelerin merkezi haline gelmiş olan GitHub, milyonlarca geliştirici tarafından aktif olarak kullanılmaktadır.

GitHub Hesabı ve Depo Oluşturma

GitHub'da bir hesap oluşturduktan sonra yeni bir depo (repository) oluşturabilirsiniz. Depo oluştururken şu seçeneklere dikkat edin:

  • Public veya Private: Projenizin herkese açık mı yoksa yalnızca davet edilenlere mi görünür olacağını belirler
  • README dosyası: Projenizi tanımlayan bir başlangıç dosyası ekler
  • .gitignore: Takip edilmemesi gereken dosyaları belirler
  • Lisans: Projenizin kullanım şartlarını tanımlar

Yerel Depoyu GitHub'a Bağlama

Yerel Git deponuzu GitHub'daki uzak depoya bağlamak için şu komutları kullanırsınız:

git remote add origin https://github.com/kullanici/proje.git
git push -u origin main

İlk push işleminden sonra git push komutu tek başına yeterli olacaktır. Uzak depodaki değişiklikleri yerel deponuza çekmek için ise git pull komutunu kullanırsınız.

Pull Request ve Kod İnceleme

Pull request (PR), GitHub'ın en önemli özelliklerinden biridir. Bir branch üzerindeki değişikliklerinizi ana branch'e birleştirmeden önce ekip arkadaşlarınızın incelemesine sunmanızı sağlar.

Pull Request Oluşturma

  1. Feature branch'inizdeki değişiklikleri GitHub'a push edin
  2. GitHub'da "New Pull Request" butonuna tıklayın
  3. Kaynak ve hedef branch'leri seçin
  4. Değişikliklerinizi açıklayan bir başlık ve açıklama yazın
  5. İnceleme yapacak kişileri (reviewers) atayın

Kod İnceleme Süreci

İyi bir kod inceleme süreci, yazılım kalitesini artırır ve ekip içi bilgi paylaşımını güçlendirir. İnceleme yaparken şu noktalara dikkat edilmelidir:

  • Kodun okunabilirliği ve anlaşılırlığı
  • Potansiyel hatalar ve güvenlik açıkları
  • Test kapsamı ve test kalitesi
  • Proje standartlarına uygunluk
  • Performans etkileri

Ekip Çalışması İçin En İyi Uygulamalar

Commit Mesajları

İyi yazılmış commit mesajları, projenin geçmişini anlamayı kolaylaştırır. Etkili commit mesajları için şu kurallara uyun:

  • Kısa ve öz bir başlık yazın (50 karakter veya daha az)
  • Gerekirse detaylı açıklamayı gövde kısmına ekleyin
  • Emir kipi kullanın: "Hata düzeltildi" yerine "Hatayı düzelt"
  • Değişikliğin nedenini açıklayın, ne yapıldığını değil

Çakışma Yönetimi

Ekip çalışmasında çakışmalar kaçınılmazdır. Çakışmaları en aza indirmek ve etkili bir şekilde yönetmek için şu stratejileri uygulayın:

  • Sık sık ana branch'ten güncellemeleri çekin
  • Küçük ve odaklanmış commit'ler yapın
  • Aynı dosya üzerinde aynı anda çalışmaktan kaçının
  • Çakışmaları çözerken her iki tarafın değişikliklerini dikkatlice inceleyin

.gitignore Dosyası

Her projede takip edilmemesi gereken dosyalar vardır. Derleme çıktıları, bağımlılık klasörleri ve ortam değişkenleri gibi dosyaları .gitignore dosyasında belirterek Git'in bunları yok saymasını sağlayabilirsiniz:

node_modules/
*.log
.env
bin/
obj/
.vs/

İleri Düzey Git Özellikleri

Stash Kullanımı

Üzerinde çalıştığınız değişiklikleri commit etmeden geçici olarak kaydetmek istediğinizde git stash komutunu kullanabilirsiniz. Bu özellik, acil bir düzeltme yapmanız gerektiğinde veya branch değiştirmeniz gerektiğinde son derece kullanışlıdır:

git stash
git stash pop

Rebase ve Squash

Rebase, bir branch'in geçmişini yeniden düzenlemek için kullanılır. Commit geçmişini temiz ve doğrusal tutmak istediğinizde merge yerine rebase tercih edebilirsiniz:

git rebase main

Squash ise birden fazla commit'i tek bir commit olarak birleştirmenizi sağlar. Bu, özellikle feature branch'lerindeki çok sayıda küçük commit'i tek bir anlamlı commit haline getirmek için kullanışlıdır.

Git Hooks

Git hooks, belirli Git olayları gerçekleştiğinde otomatik olarak çalışan betiklerdir. Commit öncesi kod formatlama, test çalıştırma veya commit mesajı doğrulama gibi işlemler için kullanılabilir. Popüler araçlardan Husky, JavaScript projelerinde Git hooks yönetimini kolaylaştırır.

GitHub Actions ile Otomasyon

GitHub Actions, CI/CD (Sürekli Entegrasyon/Sürekli Dağıtım) süreçlerini otomatikleştirmek için güçlü bir araçtır. Her push veya pull request işleminde otomatik testler çalıştırabilir, kod kalitesi kontrolleri yapabilir ve uygulamanızı dağıtabilirsiniz.

GitHub Actions iş akışları YAML dosyalarıyla tanımlanır ve .github/workflows dizininde saklanır. Hazır action'lar marketplace'ten edinilebilir veya kendi özel action'larınızı yazabilirsiniz.

Git ve GitHub, modern yazılım geliştirmenin vazgeçilmez araçlarıdır. Bu araçları etkin bir şekilde kullanmak, bireysel üretkenliğinizi artırır ve ekip çalışmasını güçlendirir. Küçük adımlarla başlayın, temel komutları öğrenin ve zamanla ileri düzey özellikleri keşfedin.

Bu yazıyı paylaş