Learning Objectives

  • List and explain the key features of version control systems
  • Illustrate the concepts of branching and merging
  • Match the following operations in Git with their description
  • Explain the difference between the working directory, staging area, and repository in Git
  • Use Git to track changes to files
  • Compare traditional system building with continuous integration

How to Complete this Lesson

Complete the following learning activities: (3–3.75 hours total)

  1. Read the following in Software Engineering and (optionally) complete the reading guide:
    • Chapter 25: Configuration management (90–120 minutes)
      • Version management
      • System building
      • Change management (skim)
      • Release management (skim)
  2. Read the Git Handbook, being sure to watch the following videos: (15 minutes)
  3. Attend the class meeting (60 minutes)
  4. Start the Introductions assignment (15–30 minutes)
    • Accept the assignment in GitHub Classroom
    • Clone the repository to your local machine

Resources

Videos

Further Reading

Bryan O’Sullivan, “Making Sense of Revision-Control Systems,” Communications of the ACM, Vol. 52, No. 9, pp. 56-62, September 2009

Pro Git is an excellent resource to learn more about Git, from the basics to the nitty-gritty details. The following chapters are particularly relevant:

(Note that only the first section of each chapter is accessible via the prior links so you must view the later sections using the navigation buttons at the bottom of each page.)

If you prefer graphical user interface, GitHub Desktop is cross-platform and designed to work with GitHub. The following articles cover the basics of how to use it: