Git workflows
-
Upload
thuc-le-dong -
Category
Engineering
-
view
370 -
download
0
Transcript of Git workflows
![Page 1: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/1.jpg)
Git Workflows
![Page 2: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/2.jpg)
Agenda1 Compare workflows2 Git Workflows - branding model3 Special cases - how to resolve
![Page 3: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/3.jpg)
WorkflowsCompare and review
![Page 4: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/4.jpg)
Centralized Workflow (1)
![Page 5: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/5.jpg)
Centralized Workflow (1)
Master
![Page 6: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/6.jpg)
Centralized Workflow (2)
Server
Master
Dev A
Master
Dev B
Master
![Page 7: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/7.jpg)
Centralized Workflow (3)
Master
Master
Master
![Page 8: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/8.jpg)
Centralized Workflow (3)Master
Master
![Page 9: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/9.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/10.jpg)
Feature Branch Workflow (1)
![Page 11: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/11.jpg)
Feature Branch Workflow (2)
Server
Master
Dev A
Master
Fix bug
Dev B
Master
Web Gui
![Page 12: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/12.jpg)
Feature Branch Workflow (3)Master
Fix bug
Master
Fix bug
Web Gui
Master
Fix bug
Web Gui
![Page 13: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/13.jpg)
Feature Branch Workflow (4)
Master
Fix bug
Web Gui
Master
Web Gui
Master
![Page 14: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/14.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/15.jpg)
Git WorkflowsBranding model
![Page 16: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/16.jpg)
Vincent Driessen. January 05, 2010. A post. Standard for most git projects
![Page 17: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/17.jpg)
Two main branches. master and develop. infinite lifetime
![Page 18: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/18.jpg)
Branch master. Production release. Stable. Never implement new features in master branch. Used for automation build production package
![Page 19: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/19.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/20.jpg)
Master and develop. When develop is enough stable for release:-> Merge develop into master
![Page 21: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/21.jpg)
. Feature branches
. Release branches
. Hotfix branches
. Have a limited life time
Supporting branches
![Page 22: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/22.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/23.jpg)
Feature branches. Creating a feature branch
![Page 24: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/24.jpg)
Feature branches. Done feature and merge to develop
![Page 25: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/25.jpg)
Merge with --no-ff
![Page 26: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/26.jpg)
Release branches
![Page 27: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/27.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/28.jpg)
Release branches. Create release
![Page 29: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/29.jpg)
Release branches. Finish release branch
![Page 30: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/30.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/31.jpg)
Hotfix branches. Create hotfix branch
![Page 32: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/32.jpg)
Hotfix branches. Finish hotfix branch
![Page 33: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/33.jpg)
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](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/34.jpg)
Special casesExperience when applying
![Page 35: Git workflows](https://reader036.fdocuments.in/reader036/viewer/2022062302/58eeceb21a28ab960d8b45f3/html5/thumbnails/35.jpg)
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