ADR 0015: Rebase-First Git Flow
ADR 0015: Rebase-First Git Flow
Section titled “ADR 0015: Rebase-First Git Flow”- Status: Accepted
- Date: 2026-04-14
- Deciders: Ideony team
Context
Section titled “Context”Ideony is built by a small team (2–3 devs). The default git pull creates merge commits, producing a noisy history that is hard to bisect and review. A clean linear history is preferred for a project where git log and git bisect are regular debugging tools.
Decision
Section titled “Decision”Configure the repo for rebase-first integration: pull.rebase=true and branch.autosetuprebase=always at the repo level (.git/config). git pull (and git pull --rebase) is the default for syncing main. git merge is reserved exclusively for the hotfix-to-prod workflow once a production release branch exists. Direct pushes to main are the norm during MVP 0 (no PR gate, per skip-pr-during-mvp0 policy); PRs re-enabled after v0 ship.
Consequences
Section titled “Consequences”- Linear commit history on
main—git log --onelineis readable,git bisectis effective. - No accidental merge commits from routine
git pullon a shared branch. - Conventional commits (
feat:,fix:,refactor:, etc.) remain meaningful in a linear log.
- Rebase rewrites commit SHAs — force-push to feature branches required after upstream rebase; team must be aware.
- Merge conflicts surface at rebase time rather than merge time; unfamiliar developers may find rebase conflict resolution harder.
git mergereserved policy requires discipline; accidental merges onmainwould break linear history.
Alternatives considered
Section titled “Alternatives considered”- Default merge flow — rejected: merge commits from
git pullpollute history; hard to bisect;git logbecomes hard to read with 3+ contributors. - GitHub Flow with squash merges — considered for post-MVP PR workflow; squash collapses feature branch into one commit, losing intermediate atomic commits. Revisit after v0.
- GitFlow (main + develop + release branches) — rejected: overkill for a 2-3 person MVP team; adds ceremony without benefit at this stage.