Git Rebase

Use when: clean up or reorder commits with rebase while keeping history safe and reviewable.

kimtth ee49d1e 1.0 KB Updated

File contents

Goal: a clear, linear history without losing work or rewriting shared commits.

Use for:

  • tidying a branch before opening a pull request
  • squashing, reordering, or editing local commits
  • updating a feature branch onto the latest base

Workflow:

  1. Confirm the commits are not yet shared, or coordinate first.
  2. Rebase interactively to squash, reword, or reorder.
  3. Update onto the base branch to incorporate new changes.
  4. Resolve conflicts commit by commit.
  5. Run tests after rebasing, before pushing.
  6. Force-with-lease to push a rewritten branch safely.

Operations:

  • squash fixups into the commit they belong to
  • reword messages for clarity
  • reorder to tell a logical story
  • drop dead or accidental commits

Rules:

  • never rebase commits others have already based work on
  • use --force-with-lease, never plain --force
  • keep each commit building and passing where feasible
  • back up the branch before a risky rebase

kimtth/agent-skill-100-lines-or-less/tree/main/skills/git-rebase commit ee49d1e303

Frequently asked questions

npx skillmds@latest add kimtth/git-rebase