game programming 03 - git flow

17
Game Programming Git Flow Nick Prühs

Upload: nick-pruehs

Post on 13-Jun-2015

279 views

Category:

Technology


1 download

DESCRIPTION

Chapter 3 of the lecture Game Programming taught at HAW Hamburg. Introduction to the Git branching model developed by Vincent Driessen.

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