Module 1: Versioning through Git and GitHub (Project 1a)

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

Learning Activities

  • Readings
  • Discussion Board
  • Programming Project

For Further Study

Leave A Reply

Your email address will not be published. Required fields are marked *