CMPS 262: Advanced Programming
Introduction
The programmer has access to many tools. One of the most important tools in the toolbox is a version control system, which maintains a history of changes that have been made to the source code of a software project. This is extremely useful because when a new bug appears, it is possible to analyze it by comparing two versions of the source code or even roll back to the previous version.
In addition, a version control system also allows multiple programmers to work together in an orderly fashion. For example, it is common that each developer works in their own development branch and then merges their changes to the main branch (often called master) when a feature has been completed. This is sometimes called a pull request, because it pull changes from one branch to another and allows other programmers to review the code and suggest changes or point out potential problems.
There have been many version control systems. The Concurrent Versions System (CVS) was popular for a long time but limitation caused people to move to other systems, such as Subversion. Nowadays, Git is a very popular and open source version control system that was created by Linus Torvalds, who is also the creator of Linux. GitHub is a proprietary website that provides a convenient web interface to common task. For example, it allows code reviews on pull requests.
In this module you will learn the basics of the Git version control system, as well as GitHub.
Module Objectives
- Explain the role of version control system in software development
- Describe some benefits of version control systems
- Create a new Git repository
- Pull changes from the repository
- List changes to the repository
- Commit and push changes to the repository
Learning Resources
- Read this article by Martin Fowler on version control tools
- Set up your local coding environment (if you have not done so yet)
- Set up your remote jail environment (if you have not done so yet)
- Create your homepage (if you have not done so yet)
- Use FileZilla to upload files (if you have not done so yet)
- Create a GitHub account and repository
- Clone the Git repository locally
- Work trough this interactive Git tutorial
Learning Activities
- Readings
- Discussion Board
- Programming Project
For Further Study
- Read more about the Concurrent Versions System on Wikipedia
- Read more about Apache Subversion on Wikipedia
- Read more about Git on Wikipedia
- Read more about GitHub on Wikipedia