Top Banner
Game Programming Git Flow Nick Prühs
17

Game Programming 03 - Git Flow

Jun 13, 2015

Download

Technology

Nick Prühs

Chapter 3 of the lecture Game Programming taught at HAW Hamburg.

Introduction to the Git branching model developed by Vincent Driessen.
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Game Programming 03 - Git Flow

Game ProgrammingGit Flow

Nick Prühs

Page 2: Game Programming 03 - Git Flow

Objectives

• To understand how to develop separate features without interfering with other team members

• To get an idea of how to prepare a new release using a dedicated branch

• To learn how to integrate hotfixes in live environments

2 / 17

Page 3: Game Programming 03 - Git Flow

GitFlow

• Originally developed by Vincent Driessen

• Assigns very specific roles to different branches, and defines how and when they should interact

• Allows merging and branching to be part of your daily workflow

3 / 17

Page 4: Game Programming 03 - Git Flow

Main Branches

• master• origin/master HEAD is always ready for production

• develop• origin/develop HEAD always contains the latest

delivered development changes

• Nightly builds are created from this branch

• Whenever considered stable, merged back into masterand tagged

4 / 17

Page 5: Game Programming 03 - Git Flow

Main Branches

5 / 17

Page 6: Game Programming 03 - Git Flow

Supporting branches

• Feature branches• Allow parallel development

• Make tracking features easier

• Release branches• Help preparing for releases

• Hotfix branches• Enable you to quickly fix live problems

6 / 17

Page 7: Game Programming 03 - Git Flow

Feature Branches

• Branch from and merge back into develop

• Used for developing new features

• Exists while the feature is in development

• Will eventually be• Merged back, to include the new feature in the next

release, or

• Discarded, if the feature should not be included

• Never directly interact with the master branch

7 / 17

Page 8: Game Programming 03 - Git Flow

Feature Branches

8 / 17

Page 9: Game Programming 03 - Git Flow

Hint

Merging with the “no fast-forward”option causes the merge to alwayscreate a new commit. This makestracking of your branches a loteasier!

9 / 17

Page 10: Game Programming 03 - Git Flow

Release Branches

• Branch from develop, and merge back into develop and master

• Created when all desired features for the next release have been merged back into develop

• Supports preparation of a new production release• Setting up meta-data such as version numbers or

database connections

• Generating API documentation

• Features for the next release can already merge back into develop

10 / 17

Page 11: Game Programming 03 - Git Flow

Release Branches

11 / 17

Page 12: Game Programming 03 - Git Flow

Hint

Whenever changes are mergedback into master, this is a newproduction release by definition!

12 / 17

Page 13: Game Programming 03 - Git Flow

Hotfix Branches

• Branch from master, and merge back into develop and master

• Created when a critical bug in a production release has to be resolved immediately

• Other team members can continue working on new features or the next release

13 / 17

Page 14: Game Programming 03 - Git Flow

Hotfix Branches

14 / 17

Page 15: Game Programming 03 - Git Flow

Hint

Unlike the two main branches, allsupporting branches will be mergedand removed eventually!

15 / 17

Page 16: Game Programming 03 - Git Flow

References

• Vincent Driessen. A successful Git branchin model. http://nvie.com/posts/a-successful-git-branching-model/, January 5, 2010.

• Atlassian. Gitflow Workflow. https://www.atlassian.com/git/workflows#!workflow-gitflow, June 2014.

16 / 17

Page 17: Game Programming 03 - Git Flow

Thank you for your attention!

Contact

Mail

[email protected]

Blog

http://www.npruehs.de

Twitter

@npruehs

Github

https://github.com/npruehs

17 / 17