๐งน Rebase = Clean History
Merge commits are messy. Rebase creates clean history. Linear, readable, professional.
โ Merge (Messy)
* Merge commit |\ | * Feature commit | * Feature commit | * Feature commit * | Main commit * | Main commit
โ Rebase (Clean)
* Feature commit * Feature commit * Feature commit * Main commit * Main commit
๐ Rebase Commands
# Basic rebase git checkout feature-branch git rebase main # Interactive rebase (squash commits) git rebase -i HEAD~5 # Rebase with options git rebase --abort # Cancel rebase git rebase --continue # Continue after conflict resolution git rebase --skip # Skip current commit # Rebase onto git rebase --onto target-branch source-branch feature-branch # Rebase with merge strategy git rebase -X theirs main # Resolve using theirs git rebase -X ours main # Resolve using ours # Interactive Rebase Options pick - Use commit reword - Change message edit - Amend commit squash - Combine with previous fixup - Combine, discard message exec - Run command drop - Remove commit # Rebase Best Practices - Don't rebase shared branches - Rebase before merging to main - Use interactive rebase for cleanup - Squash related commits - Write clear commit messages
๐ก Rebase Tips
- Don’t rebase shared branches
- Rebase before merging to main
- Use interactive rebase for cleanup
- Squash related commits
- Write clear commit messages
“Rebase creates clean history. Linear, readable, professional. Essential for Git workflow.”
