Skip to content
This repository has been archived by the owner on Apr 17, 2023. It is now read-only.

CEDAR Git workflow

Marcos Martinez edited this page Sep 22, 2015 · 3 revisions

We have adopted the [Git-Flow branching model] (http://nvie.com/posts/a-successful-git-branching-model/), proposed by Vincent Driessen in 2010. This workflow is very well suited to collaboration and scaling the development team, and has gained success over the years, at the point that many other developers, teams and companies started to use it. For example, Atlassian, a well-known company that offers Git related services such as Stash or Bitbucket, integrates the GitFlow directly in its GUI tool, the SourceTree.

Key benefits

(adapted from: DataSift)

Parallel Development

It makes parallel development very easy, by isolating new development from finished work. New development (such as features and non-emergency bug fixes) is done in feature branches, and is only merged back into main body of code when the developer(s) is happy that the code is ready for release.

If you are asked to switch from one task to another, all you need to do is commit your changes and then create a new feature branch for your new task. When that task is done, just checkout your original feature branch and you can continue where you left off.

Collaboration

Feature branches also make it easier for two or more developers to collaborate on the same feature, because each feature branch is a sandbox where the only changes are the changes necessary to get the new feature working. That makes it very easy to see and follow what each collaborator is doing.

Release Staging Area

As new development is completed, it gets merged back into the develop branch, which is a staging area for all completed features that have not yet been released. So when the next release is branched off of develop, it will automatically contain all of the new stuff that has been finished.

Support For Emergency Fixes

GitFlow supports hotfix branches - branches made from a tagged release. You can use these to make an emergency change, safe in the knowledge that the hotfix will only contain your emergency fix. There is no risk that you will accidentally merge in new development at the same time.

Clone this wiki locally