Example: Instead of branching you would just create a `changelist` (a commit, a set of changes to files) and work on that. You can show it to your colleagues. You can build and test it. You can send the id to anyone to have a look at it, or test it themselves. You can have multiple changelists depending on each other, without being commited.
This might be an interesting read for you: https://paulhammant.com/2014/01/08/googles-vs-facebooks-trun...