CompSci 308
Spring 2018
Software Design and Implementation

GIT Workflow for Teams

I suggest the following workflow for your team projects to minimize merge conflicts. It is based on using one branch per person in the team and using Gitlab's Merge Request to share each person's changes with the team.

Clone the Project Repository

For team projects, you will want to clone the team repository directly (instead of forking your own copy) so that everyone is working on the same code base.

One Branch per Person

The advantage of using this approach is that, assuming you are the only one using your branch, you will only need to push your changes periodically so they are available in Gitlab and can be integrated into the master branch and will not need to pull any new changes.

Integrate Your Changes with the Team

Merge Requests are a powerful tool provided by many online GIT repositories (including GitHub and BitBucket). It creates a web page representing the changes you intend to make to the repository in an easy to understand format that allows others to comment on your changes before accepting them. The request also updates automatically if new changes are pushed to the repository.

Integrate the Team's Changes with Your Code

This step is most likely to contain merge conflicts since you have been coding on your branch without worrying about what the rest of the team has been doing.