- master, develop - Feature, release, hot-fix branches ▸ Features: - Designed for long releases - Full set of rules for all cases - BASH helper script ▸ Problems: - Complex workflow
- master - Feature branch - Tags as releases ▸ Features: - master branch is ALWAYS stable - Very efficient with culture of shipping (tests, code review) ▸ Problems - Release management, support of several releases (not a case for mobile apps)
For teams that are small. ▸ For projects that are: - Feature-driven. Features are small (days but not weeks). - Could be released often. ▸ For those who want to have a full control on repository. ▸ “You are responsible for code that you write”.
person who created it and works in it. So code reviewer checks only this person’s code without merge commits from other developers. ▸ Clean and “easy-to-navigate” history. ▸ Pull requests. ▸ “Release early, release often”. Tight feedback loop. ▸ Tag is a release. No separate branch.
changes from master. ▸ There is only yours changes in branch. ▸ Never push —force master branch. ▸ TIP: Interactive rebase (Default editor (VIM) could be changed to Atom, Sublime so on).