commit principles
- Every commit must be independent
- Every commit must include its own tests
branch principles
tree based struecture
- release branch is only one
- test branch can be more than one
- several one function based develop branch
- merge commit (top - down)and pull request (down - top) must be reverse direction
pull request principle
- every pull request must be stable (pass all tests)