Blog
Mert Özen's blog posts on software development, backend, frontend, and DevOps.
Preparing for Git 3.0: What Changes, What Goes, What to Do Today
We separate the official status of Git 3.0 (BreakingChanges.adoc: no date yet) from the plan reported by GitLab and LWN. We try the main, SHA-256 and reftable defaults, safe.bareRepository, mandatory Rust, the commands being removed and why git checkout stays on Git 2.54, and end with a preparation checklist.
Git 2.50–2.56: git history, Config-Based Hooks and git add --resolved
We go from Git 2.50 to the current 2.56: git history reword and split (fixup in 2.55, drop in 2.56), config-based and parallel hooks, stash export/import, pull.autostash and what happens on a conflict, git last-modified, git repo info, reflog drop, branch --delete-merged, add --resolved and the -h exit code change.
Git 2.40–2.49: reftable, SHA-256, git replay and the New git config
We look at the 2.40–2.49 period, when the foundations of Git 3.0 were laid, with real output: the reftable ref store and git refs migrate, where SHA-256 repos stand today, git config's get/set/unset/list subcommands, worktree add --orphan, git replay, safe.directory prefixes, git backfill and Rust's first step.
Git 2.23–2.39: From checkout to switch and restore, Old Habits to New Ones
We put old and new side by side for what arrived between Git 2.23 and 2.39: the move from checkout to switch and restore, init.defaultBranch, pull's divergent branches error, sparse-checkout, maintenance, fsmonitor, ort and remerge-diff, rebase --update-refs, force-if-includes, safe.directory and SSH signing.