Our store has a fairly fast deployment cycle (1-2 weeks between when the code was written and when it was released). So, after a little experiment, we used the following template for our use of Git:
- The developer creates a host-based branch for his specific ticket (that is, the "bug-5555" branch)
- Developer executes fix code for this thread
- The supervisor reinstalls our "pre-master" branch (a copy of the master with the current release candidates) on top of the error branch.
- The supervisor is merged (fast forward), fixed from the error branch in the pre-master branch
- QA team - fixes in the pre-master branch
- If the patch does not comply with QA, it is canceled from the pre-master branch
- (After the QA error correction is completed, steps 3-5 are repeated)
- When we are ready to release, the pre-master branch becomes the new main branch
This style has a number of advantages for us: it makes the QA team accurately test what is going to go live, this allows us to easily insert things and extract material from QA, this keeps the code for a specific fix all beautiful and neat in its branch and etc.
, rebase ( , pre-master, pre-master - ). , , .
, , , , - pre-master , QA. , , , master. , QA , , ( master) ( ), , , .
, , ... , :
- , , : , QA-, , ( ) () ?
- - , , , , ?