> For the complete documentation index, see [llms.txt](https://hack-challenge.cornellappdev.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://hack-challenge.cornellappdev.com/team-collaboration/git-and-github.md).

# Git and Github

## What is Git?

Git is a version control system for tracking changes in files and coordinating work on those files among multiple people. We will be using it for source code management in this class.&#x20;

## Why use Git?

**Feature branching:** Each person working on a different aspect of your project can create a new branch off of your master branch. This allows for isolated work to be done in parallel without waiting for a teammate to complete their task.

**History:** Because Git keeps track of incremental changes as commits, we are able to look back at the change history to debug and revert back if needed.

**Local repositories:** As an example, Google Docs does not have local repositories. Everyone works on the same document. If a mistake is made, then everyone else’s work is also impacted. With Git, our source code is located among local and remote repositories that are not automatically synced.&#x20;

## What is GitHub?

GitHub, like DockerHub, is a cloud-based platform built around the Git tool. It is a platform that hosts remote repositories of code. Git itself is the version control tool that runs on our local computer.&#x20;
