Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Series
DevOps
PART 20
Git rebase: Rewriting History and Pushing It Safely
We compare merge and rebase in the same scenario: why rebase rewrites commits with new hashes, conflicts during a rebase and the flipped HEAD, pull --rebase, the golden rule, pushing a rebased branch with --force-with-lease and --force-if-includes, and --update-refs for stacked branches.
6 Nov 2026
10 min
2
DevOps
PART 21
Git Interactive Rebase and Squash: Tidying History Before a PR
We turn a messy feature branch into three clean commits with git rebase -i: the todo list, pick, reword, edit, squash, fixup, drop and reordering, the commit --fixup plus --autosquash flow, how it differs from GitHub's squash merge, and the experimental git history reword in Git 2.54.
6 Nov 2026
10 min
2