I&#x27;m usually a silent reader of HN, but I can&#x27;t help myself.<p>I definitely disagree with pretty much everything. The merits of merge commits have already been proven, and using rebases is basically rewriting history. If you want all work done precisely as happened in real life you should always use merge commits. Saved my ass a bunch of times.<p>Also, when something breaks after a merge, it&#x27;s super easy to undo and to deal with - &quot;Yo Don, your merge of feature X just broke feature Y. Run some tests&quot;.<p>I just recently moved to a new job where they love the &quot;everything is on master&quot; approach and that is absolutely terrible IMO. Everything is constantly broken, and developers always end up breaking builds and stepping on each others&#x27; toes. CI doesn&#x27;t help in this case either because you always need to wait for some dev to fix the build. Wouldn&#x27;t it be better to just undo a merge of some feature (i.e. reject the merge) and then let the dev fix that on her own time? Working just on master is just the wrong way of doing anything on a team with more than 2 people.