Stay away from rebase
There's an elephant in the room that he missed.<p>Rebase breaks bisect.<p>If you have a sequence of patches, wherein each patch compiles cleanly, and you merge it with another sequence of patches, you <i>still</i> have a sequence of patches that compiles cleanly.<p>If however you <i>rebase</i> your sequence of patches onto another sequence, and this introduces build errors (not uncommon), bisect <i>no longer works</i> on this segment of history, <i>even after</i> you fix the build issues with a final "cleanup" patch.<p>Rebase destroys semantic history.  Merge preserves it.<p>EDIT: whomever downvoted me, care to explain what's wrong with my reasoning?