35
Git Workflows

Git workflows

Embed Size (px)

Citation preview

Page 1: Git workflows

Git Workflows

Page 2: Git workflows

Agenda1 Compare workflows2 Git Workflows - branding model3 Special cases - how to resolve

Page 3: Git workflows

WorkflowsCompare and review

Page 4: Git workflows

Centralized Workflow (1)

Page 5: Git workflows

Centralized Workflow (1)

Master

Page 6: Git workflows

Centralized Workflow (2)

Server

Master

Dev A

Master

Dev B

Master

Page 7: Git workflows

Centralized Workflow (3)

Master

Master

Master

Page 8: Git workflows

Centralized Workflow (3)Master

Master

Page 9: Git workflows

Centralized Workflow (4)Advantages. Simple with 1 dev. Take less effort

Disadvantages. Complex with > 2 devs. A unstable commits will affect other devs

Page 10: Git workflows

Feature Branch Workflow (1)

Page 11: Git workflows

Feature Branch Workflow (2)

Server

Master

Dev A

Master

Fix bug

Dev B

Master

Web Gui

Page 12: Git workflows

Feature Branch Workflow (3)Master

Fix bug

Master

Fix bug

Web Gui

Master

Fix bug

Web Gui

Page 13: Git workflows

Feature Branch Workflow (4)

Master

Fix bug

Web Gui

Master

Web Gui

Master

Page 14: Git workflows

Disadvantages. Not manage releasing flow yet. Not support hotfix flow yet. Master still unstable for production

Feature Branch Workflow (4)Advantages. Devs work together without merging frequently. Features don’t affect together

Page 15: Git workflows

Git WorkflowsBranding model

Page 16: Git workflows

Vincent Driessen. January 05, 2010. A post. Standard for most git projects

Page 17: Git workflows

Two main branches. master and develop. infinite lifetime

Page 18: Git workflows

Branch master. Production release. Stable. Never implement new features in master branch. Used for automation build production package

Page 19: Git workflows

Branch develop. Branch from master when init. Features are ready. Stable for integration test. Used for build staging or nightly build. Should not commit on develop directly

Page 20: Git workflows

Master and develop. When develop is enough stable for release:-> Merge develop into master

Page 21: Git workflows

. Feature branches

. Release branches

. Hotfix branches

. Have a limited life time

Supporting branches

Page 22: Git workflows

Feature branches. 1 feature - 1 branch. Branch from develop. Merge into develop. Only merge to develop when feature is done . Delete when it was done

Page 23: Git workflows

Feature branches. Creating a feature branch

Page 24: Git workflows

Feature branches. Done feature and merge to develop

Page 25: Git workflows

Merge with --no-ff

Page 26: Git workflows

Release branches

Page 27: Git workflows

Release branches. A preparation for of a new production release. . Branch from develop. Merge into develop and master. Delete when it’s done

Page 28: Git workflows

Release branches. Create release

Page 29: Git workflows

Release branches. Finish release branch

Page 30: Git workflows

Hotfix branches. Use to fix issue in production. Branch from master. Merge into develop and master. Delete when it’s done

Page 31: Git workflows

Hotfix branches. Create hotfix branch

Page 32: Git workflows

Hotfix branches. Finish hotfix branch

Page 33: Git workflows

Summary. Two main branches: master, develop. Three supporting branches: feature, release, hotfix

Fullflow: http://nvie.com/files/Git-branching-model.pdf

Page 34: Git workflows

Special casesExperience when applying

Page 35: Git workflows

Exception cases1 Commit in master…2 Feature branch A needs commits from develop3 Feature branch A needs commits from feature branch B4 Multiple environment: production, staging, testing, xxx