I'm very happy to see this guide encouraging the use of squashing and rebasing. It's really frustrating to see patch sets being merged that look like:
* Add widget
<code review happens>
* Fix typo
* Add test
* Fix test
* etc.
People fear rebasing because they already pushed to a remote server. Just delete the remote branch and re-create it after you've rebased. Assuming, of course, that this is a feature branch of some sort that no one else depends on.
Clean, logical commits and a mostly linear history make me a happy developer.
A lot of these items seem to go against current standards for no particular reason (or with no clear explanation). I've mentioned two here [1], but there's several others.
Alot of (Linux) package managers use dashes within package names and within package versions and underscores to split name from version. This is the convention I try to follow.
* Add widget
<code review happens>
* Fix typo
* Add test
* Fix test
* etc.
People fear rebasing because they already pushed to a remote server. Just delete the remote branch and re-create it after you've rebased. Assuming, of course, that this is a feature branch of some sort that no one else depends on.
Clean, logical commits and a mostly linear history make me a happy developer.