Goal
Make an ansychrous workflow that allows the team to collaborate seemlessly, on their terms.
Background
What we had
Git Flow
- You've probably used to it.
- Focuses on local branches and workflow.
- Doesn’t focus on team collaboration, code review, or continuous deployment.
Lots of distrbuted tools like Jira, Pivotal Tracker, Trello, Email.
Information is everywhere. No one has the whole picture. Its hard to collet and stay up to date.
Move to GitHub flow
- Focuses on team collaboration by heavily leveraging GitHub and its tools.
- Allows for a highly visible and transparent code base through code reviews.
- Allows you to constantly deploy
Essentially boils down to:
Taking it a step forward:
Consistent git commits
- feat(folder/file): what you did
- fix(folder/file): what bug you squashed
- docs(folder/file): what you learned
- test(folder/file): things that won’t break
Rebase workflow
Pros:
- Clear linear git history
- Git history shows a meaningful increment of completed features and functionality.
- Indispensable on live products since you’ll be able to safely rollback deployed changes if there are bugs.