Git | Branching Model for a Large Project

Our team has three third-party developers and two interface developers. We use it Gitas a version control system, Jirafor tracking issues and projects, and Stashas a Git repository. And finally, we use SourceTree(c git-flow) as a Git client.

The problem is our branching strategy: we use the Vincent Driessen branching model. Each creates a feature branchproblem for each and combines it back into developwhen it is done (via a pull request and after viewing it on Stash). In addition, we create bugfix branchesfor ready-made, but not yet released issues, hotfix branchesfor issued issues, and release branchesfor completed sprints. No one affects developand / or masterdirectly in this scenario. Our front-end team uses SassCSS as a preprocessor. And finally, we have TeamCityto create changes, and he is looking for changes in the branches master.


Enough with the background, huh? So, here is the problem: let's say we have 50 problems in the sprint (10 for each of us), and at the end of the sprint the client wants to release only 35 of them (no need to ask why, this is the client). So, we must somehow exclude 15 questions. Basically, these are problems with the interface. And because of our setup, everything is currently on the branch develop. Now we have several alternatives:

  • Creating release branchfrom developand returning these 15 questions (we need to either update TeamCity or merge this branch back into master).
  • Put everything on the masterback (there is no need to touch TeamCity in this scenario).
  • Choosing Cherry required problems on master(this will probably also end with a lot of conflicts).

: Sass-to-CSS. , , . , , , , .

: develop ( develop , ), , master ( TeamCity, ).

: Git , ?

, , .

+4
1

, . 4- , :

  • develop , , ,
  • production ( release) → , , ( - )
  • , , production , . develop qa ( ). , .

, develop, , , , production one.

, , , ( , ).

+4

Source: https://habr.com/ru/post/1612696/


All Articles