Getting started using Git and GitHub can be overwhelming. The intent of this post is to provide basic background information and easy-to-follow instruction for a new user of Git and GitHub. After reading this post, I recommend reading Jon Herman’s Intro to git: Part 1 and Part 2 posts for additional information, including greater detail on important commands. Joe Kasprzyk’s post on GitHub Pages is also helpful.
What are Git and Github?
Git is an open source VCS (Version Control System). What does that mean? Essentially, it is a tool for managing and sharing file revisions. It may be utilized for code as well as other file types, such as Microsoft Word documents. Version control is important in group programming collaboration, so you definitely want to “git” on Git. Git is a distributed VCS, which allows you to push (share) and pull (acquire) version changes from a remote shared copy. Thus, you may work on your own changes of a shared code locally with options of sending revisions to the remote master copy and incorporating collaborators’ changes from the remote copy into your local copy. Although Git is particularly useful for code collaboration, it is also beneficial for individual use to reduce headaches from losing changes or breaking code. To learn more about Git and how it differs from other VCSs, please see the Getting Started – Git Basics section of the Git Reference Book. .
So, what is GitHub? GitHub hosts Git repositories (essentially project folders) and offers additional collaboration features. BitBucket is another example of a Git host. Since GitHub is public (private repositories are not free), it allows users to see how your code is evolving over time and offer input – this is the real power of Git / GitHub.
In order to utilize GitHub, you must first download Git and then set-up GitHub. Both Git and GitHub are operated through using the command line interface as the shell, which is a mechanism for the user to communicate with the operating system through a series of commands rather than by point-and-click. However, if you are uncomfortable using the command line, there are GUIs available for both Git and GitHub.
There is quite a bit of lingo that you will want to get a handle on before continuing onward. Below, I have provided a boiled down list of terms you need to know to get started.
Repository (or Repo): Location or “folder” for a project’s files and revision history
Fork: Copy of (or to copy) another user’s repo for you to use and/or edit without affecting the original repo
Clone: Copy of (or to copy) a repo on your local machine rather than on a server
Remote: Copy of a repo on a server that can be updated through syncing with local clones
Master Branch: Primary version of a repo
Branch: Parallel version of a repo that allows you to make changes without affecting the master version
Upstream / Downstream: Upstream refers to previous versions or primary branches and downstream refers to changes on forks or branches you are working on.
Merge: Applying the changes from one branch to another
Commit: Change (or revision) made to a repo. Be sure to write a clear commit message when “saving” or making the commit so that the next user understands the changes.
Pull: Taking changes from a remote repo and merging them with your local branch
Pull Request: Method to submit changes to a remote repo
Push: Sending updates to a remote repo
Owner: Original creator of a repo
Collaborator: One that is invited to contribute to a repo by the owner
Contributor: One that has contributed to a repo without collaborator access
Steps to Get Started
Follow the outlined steps below to get up-and-running on Git / GitHub. Please provide comments if any steps are unclear.
1. Create a GitHub login
Go to https://github.com/ then pick a username, type in your e-mail address, and create a password to Sign Up for GitHub. Make sure that you use this same e-mail address to set up your identity on Git in Step 3.
2. Install GIT
Visit http://git-scm.com/downloads and select the download that is right for your system.
For Windows Installation:
- Leave the default components
- Opt to use “Git from Git Bash only” to prevent changes to your PATH
3. Set-Up GIT
After the download is complete, open the Git bash (Windows) or the terminal (Mac / Linux). Bash is a UNIX shell – this means that you need to use Linux commands instead of Windows commands used typically on the command line interface.
First, you want to make a few configuration changes to set up your identity so that your commits are labeled. Since you will be using GitHub, no other setup is required for Git.
$ git config --global user.name "Your Name in Quotes" $ git config --global user.email "Your E-mail in Quotes"
Second, you want to authenticate with GitHub from Git, which means that you will select a communications protocol, HTTPS or SSH, that will allow you to connect to a GitHub repo from Git. Based on your choice, GitHub has very clear instructions on set-up found at https://help.github.com/articles/set-up-git.
4. Download GitHub Desktop Client
If you would like to limit time using the command line, you will want to download the GitHub desktop client (for Windows or for Mac). This is especially helpful if you want to clone with SSH because the desktop client will configure SSH keys for you without use of the command line.
You are all set to start using Git / GitHub to collaborate on code. You will want to practice creating a repo, forking a repo, making a commit, etc – follow John Herman’s posts, Intro to git: Part 1 and Part 2.
Some other helpful resources include: