Development

The git master branch contains a blueprint called Cluster1. This blueprint is used in production, so it must be kept in a stable condition, and only ever updated with changes that have been fully tested.

  1. A development branch called devCopy is created from the master branch. This branch will be used to hold sets of changes that can be passed on to the test department for testing.

  2. Developer 1 is given the task of adding a new feature to the Cluster1 blueprint. He therefore creates another new branch (feature1), this time based on the devCopy branch. Once this branch has been created, the developer can begin working, making changes to the Cluster1 blueprint in the feature1 branch.

  3. Developer 2 is given the task of adding another new feature to the Cluster1 blueprint. He therefore creates yet another new branch (feature2), also based on the devCopy branch. This developer can then make his changes to the Cluster1 blueprint in the feature2 branch.

  4. On finishing his changes, developer 1 merges the feature1 branch back into the devCopy branch and deletes his working branch (feature1).

  5. On finishing his changes, developer 2 merges the feature2 branch back into the devCopy branch and deletes his working branch (feature2). If any of developer 2's changes conflict with the changes made by developer 1, then he will have to resolve the conflicts while making the merge.

The result of this activity is a modified copy of the Cluster1 blueprint in the devCopy branch that contains the changes for two new features. These modifications can therefore be passed on as a unit to the test department for testing.