How to fast-forward merge in Git

Fast-forward merging is a clean way to integrate changes when your target branch hasn’t diverged from the feature branch. As the creator of CoreUI, a widely used open-source UI library, and with over 25 years of experience in software development, I’ve managed countless branch integrations where maintaining a linear history is crucial for project clarity. The most effective approach is using git merge --ff-only to ensure you only merge when a fast-forward is possible, keeping your commit history clean and readable. This method prevents unnecessary merge commits when they don’t add value to the project history.

Use git merge --ff-only to perform a fast-forward merge only when the target branch can be moved forward linearly.

git checkout main
git merge --ff-only feature-branch

The --ff-only flag ensures that Git will only perform the merge if it can fast-forward the target branch. In a fast-forward merge, Git simply moves the branch pointer forward to include the new commits, creating a linear history without a merge commit. If the branches have diverged and a fast-forward isn’t possible, Git will abort the merge instead of creating a merge commit, allowing you to decide whether to rebase or use a different merge strategy.

Best Practice Note:

This is the approach we use in CoreUI development for integrating straightforward feature additions. When fast-forward isn’t possible, consider rebasing your feature branch first with git rebase main to enable a clean fast-forward merge and maintain project history clarity.


Speed up your responsive apps and websites with fully-featured, ready-to-use open-source admin panel templates—free to use and built for efficiency.


About the Author

Subscribe to our newsletter
Get early information about new products, product updates and blog posts.

Answers by CoreUI Core Team