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
29 yazı bulundu #git
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 2
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 3
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 2
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 2
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 3
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 2
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 2
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 2
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 2
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 2
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 3
Git bisect ve git worktree: Hatayı Bulan Commit ve Aynı Anda İki Branch
DevOps SERİ 24

Git bisect ve git worktree: Hatayı Bulan Commit ve Aynı Anda İki Branch

Hatayı getiren commit'i git bisect ile ikili aramayla buluyoruz: good ve bad işaretlemek, bisect log ve reset, git bisect run ile çıkış koduna göre otomatik arama ve exit 125. Ardından git worktree ile yarım işi bozmadan ayrı bir klasörde hotfix yapıyor, worktree list/remove/prune'u ve stash ile ne zaman yer değiştirdiğini görüyoruz.

6 Kas 2026 9 dk 2
Blog Haritası