Git/Github Handbook

Created by the UPL

Before We 'Git' Started

Git has a steep learning curve. There's a lot of jargon that can feel daunting without proper guidance. If you can't figure it out right away, that's normal. You can (and definitely should) still pursue computer science, but do seek help and ask questions if you need to. It takes time, and lots of practice. We're here to help you get started!

To help wrap your head around Git, we'll use a familiar analogy— a coloring book. Our book will start out empty, and we'll add pages to it throughout this tutorial. Let's start off with some background...

What is Git, what is Github, and why are they important?

According to Git's website, "Git is a free and open source distributed version control system designed to handle everything from small to very large projects with speed and efficiency." The two main parts to that description are distributed, and version control system. Distributed means: multiple people can remotely collaborate on the same projects (some VCS don't permit this). Git is an implementation of a VCS, and GitHub is just a website that lets you store your Git projects remotely. Now, let's talk about what a version control system, or VCS, is.

Version Control System (VCS)

If you've ever used Google Drive, the concept of VCS should be familiar. Put simply, VCS saves iterations of your work, and keeps track of who made which changes, and when the changes were made. Unlike Google Drive, VCS are designed for code, and thus they are substantially more useful for programmers.

Have you ever worked on a project, copied the entire directory so you could make changes without breaking anything, and before you know it, you ended up with “MyProjectCopy1, MyProjectCopy2, … , MyProjectCopy40? Version control seamlessly takes care of this. You’ll only have one MyProject, no clutter, and Git will let you go back in time to whichever copy you want to see. Best of all, it's super easy to use once you get the hang of it. So without further adieu, let's start coloring!

Table of Contents

In progress

Contributors

Evan Kivolowitz
Aaron Levin