Game Programming Git Flow Nick Prühs
Jun 13, 2015
2. ObjectivesTo understand how to develop separate features without interfering with other team membersTo get an idea of how to prepare a new release using a dedicated branchTo learn how to integrate hotfixes in live environments2 / 17 3. GitFlowOriginally developed by Vincent DriessenAssigns very specific roles to different branches, and defines how and when they should interactAllows merging and branching to be part of your daily workflow3 / 17 4. Main Branchesmasterorigin/masterHEAD is always ready for productiondeveloporigin/developHEAD always contains the latest delivered development changesNightly builds are created from this branchWhenever considered stable, merged back into masterand tagged4 / 17 5. Main Branches5 / 17 6. Supporting branchesFeature branchesAllow parallel developmentMake tracking features easierRelease branchesHelp preparing for releasesHotfix branchesEnable you to quickly fix live problems6 / 17 7. Feature BranchesBranch from and merge back into developUsed for developing new featuresExists while the feature is in developmentWill eventually beMerged back, to include the new feature in the next release, orDiscarded, if the feature should not be includedNever directly interact with the masterbranch7 / 17 8. Feature Branches8 / 17 9. HintMergingwiththenofast-forward optioncausesthemergetoalwayscreateanewcommit.Thismakestrackingofyourbranchesaloteasier!9 / 17 10. Release BranchesBranch from develop, and merge back into develop andmasterCreated when all desired features for the next release have been merged back into developSupports preparation of a new production releaseSetting up meta-data such as version numbers or database connectionsGenerating API documentationFeatures for the next release can already merge back into develop10 / 17 11. Release Branches11 / 17 12. HintWheneverchangesaremergedbackintomaster,thisisanewproductionreleasebydefinition!12 / 17 13. Hotfix BranchesBranch from master, and merge back into develop andmasterCreated when a critical bug in a production release has to be resolved immediatelyOther team members can continue working on new features or the next release13 / 17 14. Hotfix Branches14 / 17 15. HintUnlikethetwomainbranches,allsupportingbrancheswillbemergedandremovedeventually!15 / 17 16. ReferencesVincent Driessen. A successful Gitbranchinmodel. http://nvie.com/posts/a-successful-git-branching- model/, January 5, 2010.Atlassian. GitflowWorkflow. https://www.atlassian.com/git/workflows#!workflow-gitflow, June 2014.16 / 17 17. Thankyouforyourattention!ContactMaildev@npruehs.deBloghttp://www.npruehs.deTwitter@npruehsGithubhttps://github.com/npruehs17 / 17