&gt; I&#x27;d rather think &quot;this commit is not correct anymore&quot;<p>Using the word &quot;anymore&quot; violates the whole abstraction of git, which captures the exact state of the project in each commit. If you look at a commit, there&#x27;s no &quot;anymore&quot;, no other timeframe rather that the commit&#x27;s; it&#x27;s either correct or incorrect on it&#x27;s own.<p>&gt; But so does merging, as the merge becomes even more horrible and error-prone in that case.<p>Why?<p>Just as you don&#x27;t put all your feature work in one commit, why would you implement a complex merge as one, single merge commit? It makes much more sense to merge each interface change from master to feature branch individually, resulting in atomic merge commits, each of which handles specific aspect, while staying correct.