Mert Özen Her Satırda Daha İleri

Blog

Mert Özen'in yazılım geliştirme, backend, frontend ve DevOps üzerine blog yazıları.

Seriler
105 yazı bulundu
Git Interactive Rebase ve Squash: PR Öncesi Geçmişi Toparlamak
DevOps SERİ 21

Git Interactive Rebase ve Squash: PR Öncesi Geçmişi Toparlamak

Dağınık bir feature branch'ini git rebase -i ile üç temiz commit'e indiriyoruz: todo listesi, pick, reword, edit, squash, fixup, drop ve sıra değiştirme, commit --fixup ile --autosquash akışı, GitHub'ın squash merge'ü ile farkı ve Git 2.54'teki deneysel git history reword.

6 Kas 2026 10 dk 9
Git rebase: Geçmişi Yeniden Yazmak ve Güvenle Push'lamak
DevOps SERİ 20

Git rebase: Geçmişi Yeniden Yazmak ve Güvenle Push'lamak

Merge ile rebase'i aynı senaryoda karşılaştırıyoruz: rebase'in commit'leri neden yeni hash'lerle yeniden yazdığı, rebase sırasında conflict ve ters dönen HEAD, pull --rebase, golden rule, rebase edilmiş branch'i --force-with-lease ve --force-if-includes ile push'lamak ve üst üste branch'ler için --update-refs.

6 Kas 2026 10 dk 11
Git cherry-pick: Tek Bir Commit'i Başka Branch'e Taşımak
DevOps SERİ 19

Git cherry-pick: Tek Bir Commit'i Başka Branch'e Taşımak

Bir hotfix'i main'den release branch'ine git cherry-pick ile taşıyoruz: yeni commit'in neden yeni hash aldığı, author ve committer farkı, -x ile iz bırakmak, commit aralığı almak, conflict'te --continue/--abort/--skip, git cherry ile eşdeğer commit'leri bulmak ve cherry-pick'in ne zaman koku olduğu.

6 Kas 2026 9 dk 11
Git Stash: Yarım Kalan İşi Kenara Koymak
DevOps SERİ 18

Git Stash: Yarım Kalan İşi Kenara Koymak

git stash ile yarım işi saklamak: untracked dosyalar için -u, isimli kayıtlar, list ve show, apply ile pop farkı, --staged ve --index, stash.index ayarı, pop sırasında conflict, stash branch ve Git 2.51'in stash export/import komutları.

6 Kas 2026 10 dk 8
Git ile Değişiklikleri Geri Almak 2: git revert
DevOps SERİ 17

Git ile Değişiklikleri Geri Almak 2: git revert

Paylaşılmış geçmişte güvenli geri alma: git revert'ün ters commit'i, reset ile revert arasındaki seçim, bir merge commit'i -m 1 ile revert etmek, branch'i yeniden merge ederken revert'ü geri almak, --no-commit ile birden çok commit ve revert sırasında conflict.

6 Kas 2026 7 dk 15
Git ile Değişiklikleri Geri Almak 1: git restore ve git reset
DevOps SERİ 16

Git ile Değişiklikleri Geri Almak 1: git restore ve git reset

git restore ile dosyaları working tree'de ve index'te geri almak, --source ile geçmişten getirmek; git reset'in --soft, --mixed ve --hard modlarının HEAD'e, index'e ve working tree'ye ne yaptığı, ORIG_HEAD ile geri dönmek ve eski checkout/reset biçimleri.

6 Kas 2026 8 dk 12
Git ile Ekip Çalışması: Branch Stratejileri, Rulesets ve Conventional Commits
DevOps SERİ 15

Git ile Ekip Çalışması: Branch Stratejileri, Rulesets ve Conventional Commits

Bir force push'un ekip arkadaşının commit'ini nasıl sildiğinden yola çıkarak GitHub flow, Git flow ve trunk-based development'ı karşılaştırıyoruz; branch protection ile rulesets farkı, receive.denyNonFastForwards ile sunucu tarafı koruma, CODEOWNERS ve Conventional Commits.

6 Kas 2026 10 dk 10
GitHub ile Pull Request: GitHub Flow, Review ve Merge Yöntemleri
DevOps SERİ 14

GitHub ile Pull Request: GitHub Flow, Review ve Merge Yöntemleri

Branch, commit, push ve pull request: GitHub flow'un altı adımı, draft PR, review'a yeni push'larla cevap vermek, merge commit, squash ve rebase yöntemlerinin geçmişe etkisi, squash sonrası branch silmenin tuzağı ve fork ile upstream'i senkron tutmak.

6 Kas 2026 10 dk 16
GitHub Hesabına Bağlanmak: HTTPS, Personal Access Token ve SSH
DevOps SERİ 13

GitHub Hesabına Bağlanmak: HTTPS, Personal Access Token ve SSH

GitHub'da repo açmaktan ilk push'a: 2021'den beri parolanın neden çalışmadığı, fine-grained ve classic personal access token farkı, credential helper'ın nasıl çalıştığı, ed25519 SSH anahtarı, gh auth login ve token'ı URL'ye gömmeyi yakalayan transfer.credentialsInUrl.

6 Kas 2026 10 dk 14
Git Pull'u Doğru Anlamak: fetch, merge, rebase ve Divergent Branches
DevOps SERİ 12

Git Pull'u Doğru Anlamak: fetch, merge, rebase ve Divergent Branches

git pull'un fetch ile merge ya da rebase'den oluştuğunu, Git 2.33.1'den beri ayrışmış branch'lerde çıkan "divergent branches" hatasını, --no-rebase, --rebase ve --ff-only seçeneklerini, pull.rebase ile pull.ff arasındaki tercihi, Git 2.51'deki pull.autostash'i ve fetch --prune'u gerçek çıktılarla görüyoruz.

6 Kas 2026 9 dk 10
Git Remote ve Clone: origin, fetch, push ve Upstream
DevOps SERİ 11

Git Remote ve Clone: origin, fetch, push ve Upstream

Remote'un ne olduğunu, GitHub yerine yerel bir bare repo ile git remote add, push -u ve upstream ayarını, origin/main gibi remote-tracking branch'leri, git clone'un yaptığı işleri, fetch ile merge'ün ayrımını, yeni bir branch'i paylaşmayı, git remote show/rename'i ve reddedilen push'u gerçek çıktılarla görüyoruz.

6 Kas 2026 9 dk 14
Git Conflict Çözmek: Marker'lar, merge --abort ve zdiff3
DevOps SERİ 10

Git Conflict Çözmek: Marker'lar, merge --abort ve zdiff3

Conflict'in neden çıktığını, marker'ların nasıl okunduğunu, git status, git log --merge ve git ls-files -u ile durumu görmeyi, adım adım çözümü, git merge --abort'u, merge.conflictStyle zdiff3'ü, --ours/--theirs, mergetool ve rerere'yi gerçek çıktılarla görüyoruz; Git 2.56'daki git add --resolved'a da kısaca değiniyoruz.

6 Kas 2026 9 dk 12
Blog Haritası