What is git?  What is GitHub?

The goals for this exercise are to

  1. Briefly orient yourself to what 'Git' and "GitHub' are, and why they're useful

What you need to do to prepare for this exercise:


What is a version control system?  Why is it useful?

Take 2-5 minutes to read through Automated Version Control by the Software Carpentry project

Think of a couple of examples in your own life of a time when it would have been useful to have

  1. Unlimited undos
  2. A way to collaborate with other people on a doc

What is git?  Why is it useful?

 

  1. Git is popular
    There are several DVCS’s, but many/most people use git. 
    Therefore it’s easier to find help online, looks better on the resume, etc, etc
  2. Distributed: Everyone gets a copy on their own computer, and it’s easy to have several different versions  (aka ‘branches’) on your own computer for different reasons
    1. One version / branch is a copy of the ‘real version’
    2. One version / branch is to work on a new feature that you’re adding
    3. One branch is to fix a bug that needs to be fixed ASAP
    4. Etc.
  3. Read through Intro to Distributed Version Control (Illustrated) .
    Stop when you get to the section on Mercurial.

Gotchyas (things to watch out for)

Git and GitHub can be challenging to use:

  1. Git can mean several things
    1. The client that’s built into Visual Studio
    2. The command-line client that you use in the ‘cmd.exe'’ app
      1. there’s a *LOT* of help on the internet for this, so if you search the Internet for help you’ll probably run into this.  A lot.  These typically include instructions to type stuff that starts with the word “git”, as in “git add -a MyFile.cs”
    3. Git software that runs on servers so that we can share our work with other people
    4. The file formats / “protocol” that the system uses.
  2. It’s both powerful (because it’s open-ended), plentiful (b/c it’s open source), and sometimes hard to use (because it’s open-ended)

Git vs. GitHub (or VS Online, etc, etc)

  1. Git is great, but we need a way to share our work with other people
    1. We need a ‘git’ server on the Internet
    2. GitHub to the rescue
      1. There are other options - VS Online, BitBucket, GitLab
      2. You can even set up your own if you really wanted (e.g., GitLab installed on your own computer on the Internet somewhere)

 

What you need to do for this exercise
  1. Read through the above material. 
    It's a relatively brief outline and not intended to provide you with a comprehensive description of Git and GitHub
  2. Follow the links listed above and read / skim through those pages too.
  3. There's nothing that you actually need to hand in for this exercise; the hope is that this exercise will help you understand git better even though there's nothing to hand in.
  4. This exercise should take less than 20 minutes.  If you're spending more time than that please do more 'skimming for the big ideas' and don't worry too too much about the details yet.