Automatically rewrite full git history to get rid of simple merge commits
git, git-rewrite-history
Solution
In my opinion you should avoid the temptation to re-write history just to make it "look nice". There really is no point. The history, as it is, is a more accurate representation of reality and git's reporting tools are all designed to be useful even with lots of little merges.
If you're not interested in viewing a lot of merges you can suppress them from many reporting tasks, e.g.
git log --no-merges
What you're proposing (an evening of rebasing, presumably causing all developers to have to `reset`) seems like creating work for work's sake.
Problem
Our team uses a purely merge-based git workflow, and we're discussing the possibility of just asking all team members to push all work to server one afternoon and do an evening of rebasing the server repo. I (think) what I would like to do automatically is that as long as all the commits are only on the same set of branches AND the number of parallel commits are below a given threshold I would like to rebase the series and remove the merge commit(s). But I am open to suggestions ? Anyone know how to do this ?