⚡ Modül 5: İleri Seviye
Rebase, Stash, Cherry-pick ve GitHub Actions ile otomasyon.
🔀 Git Rebase
Rebase, commit geçmişini yeniden düzenlemenizi sağlar.
Altın Kural: Push edilmiş commit'leri asla rebase yapmayın!
Merge vs Rebase
| Özellik | Merge | Rebase |
|---|---|---|
| Geçmiş | Merge commit oluşturur | Linear geçmiş |
| Güvenlik | Geçmişi değiştirmez | Geçmişi yeniden yazar |
| Kullanım | Takım çalışmasında | Bireysel temizlik |
Terminal
# main üzerine rebase
git checkout feature-branch
git rebase main
# İnteraktif rebase (son 3 commit)
git rebase -i HEAD~3
# Conflict çözdükten sonra devam
git rebase --continue
# İptal et
git rebase --abort
📦 Git Stash
Değişikliklerinizi geçici olarak saklayın, başka bir işe geçin, sonra geri alın.
Terminal
# Değişiklikleri sakla
git stash
# Mesaj ile sakla
git stash save "login WIP"
# Stash listesi
git stash list
# Son stash'ı geri al ve sil
git stash pop
# Son stash'ı geri al (silme)
git stash apply
# Belirli stash'ı uygula
git stash apply stash@{2}
# Stash sil
git stash drop stash@{0}
# Tüm stash'ları sil
git stash clear
🍒 Cherry-pick
Belirli bir commit'i başka bir branch'a uygulayın:
Terminal
# Commit hash'ini al ve uygula
git cherry-pick abc1234
# Birden fazla commit
git cherry-pick abc1234 def5678
# Commit oluşturmadan uygula
git cherry-pick --no-commit abc1234
🤖 GitHub Actions
GitHub Actions, CI/CD pipeline oluşturmanızı sağlar.
Workflow Yapısı
.github/workflows/ci.yml
name: CI
on:
push:
branches: [main]
pull_request:
branches: [main]
jobs:
test:
runs-on: ubuntu-latest
steps:
- name: Checkout code
uses: actions/checkout@v4
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
- name: Install dependencies
run: npm ci
- name: Run tests
run: npm test
Temel Kavramlar
| Kavram | Açıklama |
|---|---|
| Workflow | Otomatik süreç tanımı (.yml) |
| Event | Tetikleyici (push, PR, schedule) |
| Job | Paralel çalışabilen iş grubu |
| Step | Job içindeki tek adım |
| Action | Hazır iş parçacıkları |