Centralized
Fork & Merge
Gitflow
yes, similar to Subversion
clone. code & commit. push.
git clone git@github.com:your_username/your_repo.git
git add some_file
git commit
git push origin master
clone. code & commit. rebase. push.
git clone git@github.com:your_username/your_repo.git
git add some_file
git commit
git pull --rebase origin master
git push origin master
fork. clone. code & commit. push. pull request.
forking gives a "clean" environment
pull requests give a nice way to discuss code
forking is all done in a UI.
supported by: github, gitlab, stash/bitbucket
master mirrors production
feature branches branch off of develop
release branches branch off of develop with features not yet in master
hotfix branches branch off of master
release branches merge back into master and develop
hotfix branches also merge back into master and develop
clone.
create feature/{xyz} branch off of develop.
code & commit.
pull request to merge into develop.
create release/{version_number} branch off of develop.
qa & bugfix
merge into develop AND master.
use what works best for _your_ development cycle
these workflows are guidelines, not strict rules
Gitflow
http://nvie.com/posts/a-successful-git-branching-model/
Atlassian git workflow tutorials
https://www.atlassian.com/git/tutorials/comparing-workflows/
Slides: http://bit.ly/1Emb8co