- At the beginning, create a
master
anddev
branches. - All development should be happening on a
feature
branch (i.e. when you receive an issue/improvement/feature, you should create a corresponding branch. For example, if you work on adding logs, you create a branch:feat/improve/add-logs
). - When making a commit, we should try to specify as much as we can in the commit message.
- One commit should be corresponding to one specific task being accomplished (e.g., do not put "add feature", "fix bug", and "change data structure" into one commit).
- We should create pull request (PR) from a
feature
branch to thedev
branch once the code is well-tested in thefeature
branch. The PR should contain details of the current changes you have made so that the reviewer can review the code. - We should release
dev
tomaster
on a regular basis.
- Do not merge the
feature
branch to themaster
branch. Instead, only merge from thedev
branch tomaster
. For example, when it comes to a hot fix, we should merge from thehotfix
branch to thedev
branch first, thencherry-pick
(learn here) that to themaster
branch. - Request PRs to be reviewed (the requests will also come automatically for the
master
anddev
merges).