Purpose
- Cooperate and keep clean history.
- Standardize feature addition and release processes.
Outline
- First commit:
README.md
LICENSE
CHANGELOG.md
- Workflow:
- Features.
- Releases.
- Hotfixes.
Readme
- Why to add
README.md
?
- What is the project about.
- How to contribute.
- How to run the project.
- What dependencies needed.
- Also benefits the owner.
License
- Why to add
LICENSE
?
- Using project by others.
Changelog
- Why to keep a
CHANGELOG.md
?
- What is Semantic Versioning?
X.Y.Z
- Major (backward incompatible).
- Minor (feature).
- Patch (hotfix).
Workflow
- Features.
- Releases.
- Hotfixes.
How not?
Why not?
Why not?
- Hell a lot of long-live branches.
- More than 1 is hell a lot.
- Too complicated.
- Too chaotic.
OneFlow advantages
- Single long-live branch, therefore simple.
- Clean history, therefore useful.
How can it look like?
GitFlow/OneFlow comparison
OneFlow: Main branch
- Only long-live branch.
- Let’s call it
master
.
Feature branch picture
Release branch picture
Hotfix branch picture
So, like that…
Licenses
Versioning
Branching model
Contributed images