Git and GitHub Overview

Overview of Git and GitHub Resources at the Urban Institute

GitHub at Urban

To request access to GitHub at Urban, fill out the GitHub intake form.

The primary GitHub organization at Urban is UI-Research. We also maintain the organization UrbanInstitute. UI-Research provides more features, and the default repository visibility is private. UrbanInstitute is intended to house public-facing repositories.

1 Contents

This site includes several resources to help staff at Urban get started with Git and GitHub:

2 Motivation

Git and GitHub are tools that can help promote reproducibility through version control. Version control is a system for managing and recording changes to files over time, which can:

  • Limit the chance of making a mistake
  • Maximize the chance of catching a mistake when it happens
  • Create a permanent record of changes to code
  • Easily undo mistakes by switching between iterations of code
  • Allow multiple paths of development while protecting working versions of code
  • Encourage communication between collaborators
  • Be used for external communication

Git is a distributed version-control system for tracking changes in code. It’s like a turbo-charged version of track changes for code. GitHub is an online hosting service for version control using Git. It also contains useful tools for collaboration and project management. It’s like a turbo-charged version of Box for sharing repositories created using Git.

The objective of using Git and GitHub is to create local repositories that track code (and sometimes data) and then push those repositories to GitHub for back-up and collaboration. When someone else edits the code, they can push their changes back to that repository.

3 Getting help

We know that learning these tools can be a challenge, but we’re here for you! Feel free to drop a message in the #github Slack channel with any questions. You can also use the #github Slack channel or TECH intake form to request help setting up a project with GitHub or an onboarding session for new users.