Contenu connexe Similaire à Git Branching for Agile Teams (20) Git Branching for Agile Teams 7. Waterfall: can’t release anything
until everything is ready to release
DATABASE
BACK END
FRONT END
TESTING
“big bang” launch
10. Or to put it another way…
Potentially shippable, even
without this piece
I have a roof!
14. A big bang style release
(everything at once)
means dependencies
up the wazoo
16. Do you hold everything
in a local workspace
until the entire user
story is implemented?
18. That would mean an
important practice for agile
teams wasn’t followed:
continuous integration
23. But only if all those
changes are piled on
the primary code line
24. The idea is to push
changes to the repo
without de-stabilizing
the primary code line
31. If SVN is a
hand-drawn map,
Git comes with
built-in GPS
34. Git enables a dev to
fully exploit the power
of branch-and-merge
workflows
39. Keep the main line clean
Dev branches are
like an isolation
chamber
45. The basic idea: a master
code line with several
development branches
running alongside it
46. A branch for every issue
Keep master green
feature/DEV-30
feature/DEV-45
master
Experiment on your feature branch
49. Merge up when work is done
feature/DEV-30
master
With implementation complete, and CI passing,
merge upstream! On some teams, the product
owner acts as a “gatekeeper,” selecting branches for
merge based on what they want to release.
51. Code changes that are
breaking tests on a dev branch
aren’t affecting master or
impeding the team’s ability to
release from master
52. It’s easy to control what
is released to users and
what is held back
55. The basic idea: a shared
integration branch running
between feature branches
and the master branch
56. But what if teammates
merge incompatible
changes upstream?
60. Some teams avoid this
by using a shared branch
to integrate changes
during development
63. Merge all clean CI runs
on the dev branch
to the integration
branch and run CI
64. If changes don’t play
well with changes made
by teammates, go back
and fix the branch
72. Create a bugfix branch
off the release branch
and fix the problem there
77. Running CI on dev branches
All active branches
are under test
83. With Git, use pull
requests to integrate
peer review
into the workflow
88. For a CI purist,
that matters
!
For a CI pragmatist,
it doesn’t