As part of the Capstone project of the Master of Data Science program at UBC, we are studying how people use Git. Git is a Version Control System used to record how files change over time. Many people use Git for tracking individual work and as a tool for collaboration. However, users ranging from novices to experts have argued that the tool is not user friendly and needs to be improved. Some alternative approaches have been created to deal with these issues. For example, Gitless is a tool that abstracts Git to a subset of the commands with aliases. Other tools have been made that let the user use more secure click-and-drop interfaces to stay within basic behavior. However, no one knows for sure what would work best as an alternative because no one has collected the data and analyzed what is currently being done. This is where our project comes in.
We have a hypothesis that there are common Git workflows, and these workflows account for a large fraction of everyday use. RStudio is interested in developing a new tool for Git users that supports these common workflows, and only these workflows. Our project aims to identify these workflows with the eventual goal of providing recommendations for what features should and should not be included in an easy-to-use alternative to Git.
There are two main questions we are trying to understand:
What are the Git workflow patterns that are being used most widely? With this question we want to see if we can tell whether or not users follow suggested workflows such as GitFlow or if they follow other workflows that are more intuitive for them.
What are the patterns that, while possible to perform using Git, are not being used widely? This question will enable us to understand how different workflows are used in different contexts.
By answering these two questions, we will gain insights that will enable the development of a new tool that improves and consolidates workflows for users of Version Control Systems.