This content originally appeared on DEV Community and was authored by rashidpbi
While working with Git branches like develop
and main
, it’s common to frequently merge changes. But did you know that doing so with regular merges can break a linear commit history?
Here’s what I learned today
Problem
If you keep merging from develop
to main
using regular git merge
, Git will create merge commits, leading to a non-linear (branched) commit history.
This can make git log
harder to read, especially in large projects.
How to Maintain a Linear History
To ensure a clean, straight commit history on main
, use one of these strategies:
1. Rebase Before Merge
git checkout develop
git rebase main # Replay develop commits on top of main
git checkout main
git merge --ff-only develop # Fast-forward only
This avoids merge commits and keeps the history linear.
2. Use Squash Merging (Optional)
If you want to combine all develop changes into a single commit before merging:
git checkout main
git merge --squash develop
git commit
Useful for condensing work into one clean commit.
3. Use Fast-Forward Merges Only
Prevent accidental merge commits:
git merge --ff-only develop
Final Tip
Repeat this pattern consistently to keep
main
clean and linear β great for production branches and readable history.
Tags: #git #github #versioncontrol #devtips #100DaysOfDev
This content originally appeared on DEV Community and was authored by rashidpbi