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
215 yazı bulundu
Git Tag ve Release: Sürümleri İşaretlemek, git describe ve GitHub Releases
DevOps SERİ 23

Git Tag ve Release: Sürümleri İşaretlemek, git describe ve GitHub Releases

Sürümleri git tag ile işaretliyoruz: lightweight ve annotated tag farkı, tag object'i, semver, push'un neden tag göndermediği, --tags ile --follow-tags, git describe çıktısını okumak, GitHub Releases, tag silmek ve yayınlanmış bir tag'i taşımanın neden tehlikeli olduğu.

6 Kas 2026 8 dk 50
Git reflog: Kaybolan Commit'leri ve Silinen Branch'leri Geri Getirmek
DevOps SERİ 22

Git reflog: Kaybolan Commit'leri ve Silinen Branch'leri Geri Getirmek

Yanlışlıkla yapılan bir reset --hard'dan sonra commit'leri git reflog ile geri getiriyoruz: HEAD@{n} ile HEAD~n farkı, ORIG_HEAD ile son merge'ü geri almak, silinen branch'i reflog'dan bulmak, branch'in kendi reflog'u ile rebase'den dönmek, reflog'un yerel ve süreli olması.

6 Kas 2026 8 dk 48
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 40
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 40
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 57
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 56
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 45
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 53
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 39
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 50
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 50
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 50
Blog Haritası