I recommend we do not push merge commits upstream. I suppose it is easy
enough to filter them out when looking at history but there is no need to
be merging upstream branches into your local tracking branch when you can
rebase instead. In this way we can avoid polluting the history in the
master repository with unnecessary merge commit entries. (And maybe some
devs will be merging upstream into tracking branches or merging commits
from local feature branches several times per day, and these will all
When updating your local tracking branch from upstream, use git fetch
upstream && git rebase upstream/branch instead of 'git merge'.
When developing features on a local branch it's possible to do a squash
commit from the feature branch to the tracking branch using 'git rebase'
instead of 'git merge', then a push of the single squashed commit from the
tracking branch to the upstream branch.
If these workflow choices are acceptable by consensus we can update the
'how to commit' document with an illustration of the workflow with example
Problems worthy of attack prove their worth by hitting back. - Piet Hein
(via Tom White)