Git ve GitHub Kullanım Rehberi: Sıfırdan İleri Seviyeye

Git, yazılım geliştirmenin vazgeçilmez aracıdır. Kod değişikliklerini takip eder, ekip çalışmasını kolaylaştırır. GitHub ise Git projelerinin...

Programlar
Git ve GitHub Kullanım Rehberi: Sıfırdan İleri Seviyeye

Git, yazılım geliştirmenin vazgeçilmez aracıdır. Kod değişikliklerini takip eder, ekip çalışmasını kolaylaştırır. GitHub ise Git projelerinin bulut platformu. Bu rehberde sıfırdan ileri seviyeye Git ve GitHub kullanımını öğreneceksiniz.

Git Nedir?

Git, versiyon kontrol sistemi (VCS) yazılımıdır. 2005'te Linus Torvalds tarafından Linux çekirdeği geliştirmek için oluşturuldu.

Ne sağlar:

  • Kod değişikliklerini izleme
  • Önceki versiyonlara dönme
  • Ekiple paralel çalışma
  • Dal (branch) yapısıyla izole geliştirme
  • Değişiklikleri birleştirme

GitHub Nedir?

GitHub, Git projelerini barındıran bulut platformu. Git yerel çalışır, GitHub uzakta saklar.

GitHub özellikleri:

  • Uzak depo (remote repository)
  • İşbirliği araçları
  • Pull Request sistemi
  • Issue takibi
  • Actions (CI/CD)
  • Açık kaynak topluluk

Git Kurulumu

Windows

git-scm.com adresinden indirip kurun.

macOS

brew install git

veya Xcode Command Line Tools ile gelir.

Linux

sudo apt install git # Debian/Ubuntu sudo dnf install git # Fedora

Kurulum Kontrolü

git --version

İlk Yapılandırma

Kullanıcı bilgilerinizi ayarlayın:

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

Temel Komutlar

Depo Oluşturma

git init

Mevcut klasörü Git deposuna dönüştürür.

Depo Klonlama

git clone https://github.com/kullanici/proje.git

Uzak depoyu bilgisayarınıza kopyalar.

Durum Kontrolü

git status

Değiştirilmiş, eklenmemiş ve commit'lenmemiş dosyaları gösterir.

Değişiklikleri İzleme

Staging Area'ya Ekleme

git add dosya.txt # Tek dosya git add . # Tüm değişiklikler git add *.js # Belirli uzantı

Commit (Kaydetme)

git commit -m "Değişiklik açıklaması"

Staging'deki değişiklikleri kaydeder.

Geçmişi Görme

git log git log --oneline # Kısa format git log --graph # Görsel dal yapısı

Branch (Dal) Kullanımı

Branch, kod tabanının farklı versiyonlarını aynı anda geliştirmeyi sağlar.

Dal Listeleme

git branch

Yeni Dal Oluşturma

git branch ozellik-adi

Dal Değiştirme

git checkout ozellik-adi

veya oluştur ve geç:

git checkout -b yeni-dal

Dal Silme

git branch -d dal-adi

Birleştirme (Merge)

Dalları birleştirme:

git checkout main # Ana dala geç git merge ozellik-adi # Dalı birleştir

Merge işlemi değişiklikleri ana dala aktarır.

Çakışma (Conflict)

İki dalda aynı satır değiştirilmişse çakışma oluşur.

Çözüm:

  1. Git çakışma işaretlerini dosyaya ekler
  2. Elle düzeltin (<<<, ===, >>> işaretlerini temizleyin)
  3. git add ile ekleyin
  4. git commit ile kaydedin

Uzak Depo (Remote)

Uzak Depo Ekleme

git remote add origin https://github.com/kullanici/proje.git

Uzak Depoya Gönderme (Push)

git push origin main git push -u origin main # Takip ayarla

Uzak Depodan Çekme (Pull)

git pull origin main

Uzak Değişiklikleri Getirme (Fetch)

git fetch origin

Değişiklikleri getirir ama birleştirmez.

GitHub Workflow

Fork ve Pull Request

  1. Projeyi fork'layın (kendi hesabınıza kopyalayın)
  2. Clone ile indirin
  3. Branch oluşturun
  4. Değişiklik yapın ve commit'leyin
  5. Push ile gönderin
  6. Pull Request açın

Pull Request, değişikliklerinizi orijinal projeye teklif etme yöntemidir.

Issue Takibi

GitHub Issues ile:

  • Hata bildirimi
  • Özellik talebi
  • Görev takibi

README Dosyası

Proje açıklaması için README.md yazın:

  • Projenin ne olduğu
  • Nasıl kurulur
  • Nasıl kullanılır
  • Katkıda bulunma

İleri Seviye Komutlar

Stash (Geçici Saklama)

Değişiklikleri geçici saklamak için:

git stash # Sakla git stash list # Listeyi gör git stash pop # Geri al git stash drop # Sil

Yarım kalmış işi bırakıp başka dala geçmeniz gerektiğinde kullanın.

Rebase

Commit geçmişini düzenlemek için:

git rebase main

Merge'e alternatif. Daha düz geçmiş oluşturur.

Reset

Değişiklikleri geri alma:

git reset --soft HEAD~1 # Commit'i geri al, değişiklikler kalır git reset --hard HEAD~1 # Commit ve değişiklikleri sil

Dikkatli kullanın!

Revert

Commit'i geri alan yeni commit oluşturur:

git revert commit-hash

Güvenli geri alma yöntemi.

Cherry-pick

Belirli commit'i başka dala alma:

git cherry-pick commit-hash

.gitignore

Takip edilmeyecek dosyaları belirtin:

.gitignore node_modules/ .env *.log dist/ .DS_Store

Commit Mesajı Yazımı

İyi commit mesajı özellikleri:

Kısa ve açıklayıcı başlık (50 karakter) Boş satır Detaylı açıklama (gerekirse)

Örnek: feat: Kullanıcı girişi eklendi

  • JWT token doğrulama eklendi
  • Şifre hashleme implementasyonu
  • Oturum yönetimi

Conventional Commits

Standart format: feat: Yeni özellik fix: Hata düzeltme docs: Dokümantasyon style: Formatlalamıştır refactor: Kod düzenleme test: Test ekleme chore: Bakım işleri

Git Branch Stratejileri

Git Flow

main: Prod sürüm develop: Geliştirme feature/: Özellikler release/: Sürüm hazırlık hotfix/*: Acil düzeltmeler

GitHub Flow

main: Her zaman deploy edilebilir Feature branch'ler → Pull Request → main

Trunk Based

main'e sık commit Kısa ömürlü branch'ler Continuous Integration

SSH Anahtarı

GitHub'a şifresiz erişim için:

ssh-keygen -t ed25519 -C "[email protected]"

Public anahtarı GitHub → Settings → SSH Keys'e ekleyin.

GitHub Actions

CI/CD için:

name: Test on: [push] jobs: test: runs-on: ubuntu-latest steps:

  • uses: actions/checkout@v3
  • run: npm test

Her push'ta otomatik test çalıştırır.

Git Komut Özeti

Temel

git init, git clone, git status git add, git commit, git push, git pull

Branch

git branch, git checkout, git merge

Geri Alma

git reset, git revert, git stash

Uzak

git remote, git fetch, git push, git pull

Sonuç

Git modern yazılım geliştirmenin temelidir. Temel komutları öğrenin, branch yapısını anlayın.

GitHub ile işbirliği yapın, Pull Request sürecini benimseyin.

Commit mesajlarını anlamlı yazın, .gitignore kullanın. Pratik yaparak ustalaşın.

Celil Uyanikoglu

Yazan Celil Uyanikoglu

25 yıldır bilgi işlem piyasasında farklı dallarda uzmanlaşan bir Bilgisayar Mühendisi

Yorum

Henüz yorum yok.

Sohbete katıl. Yorumlar yayınlanmadan önce moderasyondan geçer.

Yorum yap

E-posta adresin yayınlanmaz. Yorumlar moderasyondan sonra yayınlanır.

Sırada

İlgili notlar