Skip to Main Content
Library Logo WOU Home Library Home
Search the library catalog (Primo)
Search WOU Digital Collections

Using Git and GitHub for Version Control: Getting Started

Describes how to use Git (a versioning control system) and GitHub (a web-based git repository) to track changes to your code.

What is Version Control?

Version control is essentially the ability to track changes to code in your software project (or other document). Version control systems let you not only see what changes were made when, but access older versions of the document as well.

If you've ever used Google Docs, Wikipedia's editing feature, or even the "undo" button, you've used some form of version control.

What is Git?

Git is a specific version control system first developed by Linus Torvald for the Linux operating system. It was built for speed, simplicity, and the ability to support multiple parallel versions of projects (called branches).

Git is usually run from the command line, but a number of graphical user interfaces also exist.

GitHub

GitHub is a website for hosting Git projects. 

GitHub adds useful web-based tools to Git and makes it much easier to collaborate and share your projects with others. There is also a downloadable version of GitHub that you can install on Windows and macOS.

Git and GitHub Vocabulary

Branch

A branch is a version of all the code in a project. You can use branches to test code without affecting the main project.

Fork

fork is a complete copy of the repository for a project. They differ from branches in that a fork is essentially a new project, and not a version of the same project used for testing.

Commit

A commit is a release of the latest changes to a project.

Issue

An issue is a bug or problem you or someone else has noticed in your project.

Merge

A merge is the act of adding code from one branch of a project into its main branch.

Pull Request

A pull request is a request to merge code you have written in a branch to the main branch of a project.

Repository

repository is the term used to describe all the code, readme files, and licensing information for a project.

 

 

Librarian

Profile Photo
Stewart Baker
Contact:
Hamersly Library 208A
503-838-8890
Website