Skip to content
O'Reilly home
Learning Path


Time to complete: 22h 5m

Published byInfinite Skills and O'Reilly Media, Inc.

CreatedAugust 2015

When developing code by yourself, version control is an absolutely essential but arduous task. When developing code in a team, even a team of two, it becomes impossible without a concrete system. Source control management software (revision control with merging and branching) that is centralized can quickly become unwieldy and expensive for a team to maintain. Enter Git and GitHub—Git is a distributed source control management tool, and GitHub is a hosting service for Git repositories to make backup and collaboration a breeze.

This Learning Path begins with Git and GitHub basics, such as cloning a repository, pushing changes, resolving conflicts, etc., via a GUI or the command line. It continues with the mechanics of Git to demonstrate, for example, the power of Git’s staging area and content tracking (not just file tracking). In each of the following sections on advanced Git and collaborating with Git, the instructors take care to also explain the gears and operations “under the hood,” as an understanding thereof will greatly increase everyday productivity. The Learning Path ends with real-world cases and examples from web development.

This learning path contains self assessments – short, multiple-choice quizzes that you'll take as you work through a Learning Path. They give you quick insights into how you're doing and take the guesswork out of learning.

What you’ll learn—and how you can apply it

  • How to use a distributed source control system (Git)
  • How to use a hosting service for Git repositories
  • How to collaborate easily and productively with others on software development

This Learning Path is for you because…

  • You're a programmer that wants to contribute to open source projects
  • You're a developer in a company that needs to move from a centralized to a distributed source control management system
  • You need to collaborate on a development project with others


  • Basic understanding of the command line
  • Basic programming experience

Materials or downloads needed in advance: Supplemental Content