Skip to content

Version Control and Git

tobey edited this page Apr 9, 2015 · 4 revisions

We are using the software Git for version control and source code management. The source code is in turn hosted on Github.

Key Terms/Concepts:

  • git is the version control software
  • github is a website that uses git and provides hosting as well as other features like this wiki, and a bug tracker (Issues)
  • "Pull Requests" are a github specific term.
  • git is really a general tool for managing a certain type of "tree" data structure. As such, there are many ways it can be used correctly and it is up to us to find a pattern that works for our group.
  • Github the website/business is built around a certain pattern of git usage (which we will use for the most part)
  • Forks, and Clones:
  • ua-snap has the main "fork" of our project
  • each of us additionally has a fork (hosted on github)
  • for actual work, you will "clone" from a given fork (usually your own)
  • Our convention is that your own personal fork is called origin and the ua-snap fork is called upstream

Branching Model

We are using two long-running branches for this project: master and devel. In addition we are using the "Integration Manager Workflow" and Github's Pull Requests to manage project collaboration.

Here is a graphic depicting a few key concepts.

  • Note that we are using one more "long running" branch named devel
  • In general commits on master (or devel) will represent "stable" code while commit on other branches might be "unstable"