Git Workflow / Overview
Git "workflow" refers to the day-to-day steps that occur to modify and add content in a Git repository. The workflow model focus on naming conventions for branches and processes to branch and merge. The workflow model that is chosen will depend on the size of the team and protocols for branching/merging, testing, and releasing software.
This documentation includes the following sections:
- Git Workflow Approaches:
- Resources:
- See discussion in Git in Practice by Mike McQuaid
- A successful Git branching model - often-referenced model by Vincent Driessen, where the master branch is "stable" and a development branch is created for ongoing development
- Jeremy Helms Gist on Branching - the above, with some different naming conventions, appealing because the "master" branch is the development branch (rather than stable) and a "stable" branch is used for stable releases after integration testing
- Feature Branch - simple approach to use feature/bug fix branches off of master
- Git Flow - comprehensive implementation of Vincent Driessen's model with helper scripts
- Resources:
- Branching (a way to do work in an isolated sandbox and then merge back into the master branch):
- Tagging (a way to indicate a named version that can be accessed later, for example a major release or milestone):
- Resources:
- Note that tags must be independently pushed to the remote using the same syntax as pushing a branch (but use tag name) - pushing the branch will not push tags
- Git Basics - Tagging
- Resources:
- Merging (the process of combining one branches edits with another branch):
- Resources:
- Fast-Forward Git Merge - explanation of fast-forward merge (and why it may not be desirable)
- Atlassian tutorial: Merging vs. Rebasing
- Atlassian article: Git team workflows: merge or rebase - useful information on rebasing/merging
- Merge via Issue Suggestion - contributor provides a suggestion using issue tracker forum
- Merge via Change Set - contributor provides suggested changes via a change set email
- Merge via Pull Request - contributor provides suggested changes via a pull request
- Resources:
- Continuous Integration (a way to run automated tests on a schedule to detected problems with committed code)
- Resources:
- Travis-CI - popular tool integrated with GitHub
- Resources: