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
Git 3.0'a Hazırlık: Ne Değişiyor, Ne Kalkıyor, Bugünden Ne Yapmalı
DevOps SERİ 29

Git 3.0'a Hazırlık: Ne Değişiyor, Ne Kalkıyor, Bugünden Ne Yapmalı

Git 3.0 için resmi durumu (BreakingChanges.adoc: henüz tarih yok) GitLab ve LWN'in aktardığı plandan ayırıyoruz. main, SHA-256 ve reftable varsayılanlarını, safe.bareRepository'yi, zorunlu Rust'ı, kaldırılacak komutları ve git checkout'un neden kaldığını Git 2.54'te deneyip bir hazırlık listesi çıkarıyoruz.

6 Kas 2026 8 dk 2
Git 2.50–2.56: git history, Config Tabanlı Hook'lar ve git add --resolved
DevOps SERİ 28

Git 2.50–2.56: git history, Config Tabanlı Hook'lar ve git add --resolved

Git 2.50'den güncel 2.56'ya gelenleri görüyoruz: git history reword ve split (2.55 fixup, 2.56 drop), config tabanlı ve paralel hook'lar, stash export/import, pull.autostash ve conflict durumu, git last-modified, git repo info, reflog drop, branch --delete-merged, add --resolved ve -h çıkış kodu değişikliği.

6 Kas 2026 9 dk 2
Git 2.40–2.49: reftable, SHA-256, git replay ve Yeni git config
DevOps SERİ 27

Git 2.40–2.49: reftable, SHA-256, git replay ve Yeni git config

Git 3.0'ın temellerinin atıldığı 2.40–2.49 dönemini gerçek çıktılarla görüyoruz: reftable ref deposu ve git refs migrate, SHA-256 repo'larının bugünkü durumu, git config'in get/set/unset/list alt komutları, worktree add --orphan, git replay, safe.directory prefix'i, git backfill ve Rust'ın ilk adımı.

6 Kas 2026 9 dk 2
Git 2.23–2.39: checkout'tan switch ve restore'a, Eski Alışkanlıktan Yenisine
DevOps SERİ 26

Git 2.23–2.39: checkout'tan switch ve restore'a, Eski Alışkanlıktan Yenisine

Git 2.23–2.39 arasında gelenleri eskiyle yeniyi yan yana koyarak görüyoruz: checkout'tan switch ve restore'a geçiş, init.defaultBranch, pull'un divergent branches hatası, sparse-checkout, maintenance, fsmonitor, ort ve remerge-diff, rebase --update-refs, force-if-includes, safe.directory ve SSH imzalama.

6 Kas 2026 11 dk 2
Git Hook'ları ve Commit İmzalama: pre-commit'ten SSH İmzasına
DevOps SERİ 25

Git Hook'ları ve Commit İmzalama: pre-commit'ten SSH İmzasına

pre-commit ve commit-msg hook'larını gerçek çıktılarla yazıyor, core.hooksPath ile ekiple paylaşıyor, Git 2.54'ün config tabanlı hook'larını ve git hook list'i deniyoruz. Ardından commit'leri SSH anahtarıyla imzalıyor, allowed signers ile doğruluyor ve GitHub'daki Verified rozetinin şartlarını görüyoruz.

6 Kas 2026 11 dk 2
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
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 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 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 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 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 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
Blog Haritası