Comparing Git Workflows
One of the things I hate about the traditional git workflows describe there is that there is no squashing and the history is basically unusable.   We have developers where I work that use our repo as a backup, then when things are merged to master, the history is littered with utter garbage commits like the following:
&quot;commit this before I get on the plane&quot;
&quot;whoops, make this compile&quot;
&quot;WTF?&quot;<p>These add no benefit to history, and actually provide an impediment to bisecting (since a lot of these intermediate revisions will not even compile).<p>At my previous job, we used gerrit.   The nice thing about gerrit from my perspective is that it kind of &quot;hid&quot; all of the intermediary stages in the gerrit review.  So you could push all you wanted to your gerrit review fake-branch thing, and when you finally pushed to master, there would just be a nice, clean atomic change for your feature.  If you needed more detailed history of the steps during review, it was there in gerrit.  But master was clean, and bisectable.<p>Is there any git other git tool or workflow which both allows people to back things up to the central git repo AND which allows squashing changes down to meaningful bits, AND which does not loose the history of review iterations?