Github is a hosting platform for software development that utilizes Git, the open source system for distributed version control and source code management.
Github allows large-scale and international collaboration on thousands of projects. While Git was originally intended for software development, it can be used in any collaborative working setup where maintenance of versioning is desirable.
The Making and Knowing Project (M&K) has used Github for its versioning capabilities, project management tools, and as a way to share raw data and results openly.
Github is free to use, though there are certain advanced features that are only available behind a paywall. If you have an education email account (i.e., from a university or college), many of these advanced features are made free. Almost all (if not all) of the work we do is possible with a free Github account.
To get started, create a Github account by signing up. You may want to use your education email account for added features, though this is not necessary. See Getting started with your GitHub account for more details.
For an introduction of some of the main features of Github, we suggest reviewing Github's Hello World Exercise. Another useful resource is W3schools' Intro to Github.
Each project in Github is housed in a respository, which contains all the files and directories (kind of like "folders" in your computer) of your project.
There are two main tools M&K has used to help organize and manage its Github activities.
- The Issue Tracker, found in each repository under the tab "Issues," is a place to help track work in the repository. Most often, an issue is a task or "to do" item, but it can also be used for things like tracking bugs, opening feature requests, or sharing ideas. Fore more information, see About Issues.
- Project Boards, found in each repository under the tab "Projects," is a place to organize issues and is very helpful for tracking in-progress, active, blocked, and completed issues. For more information, see About Projects and About "Classic" Projects.
Markdown is the language used throughout Github and, as its name suggests, is a simplified markup language that allows you to style and format text and media, which converts readily to html, but is much easier to pick up and write with. See Basic writing and formatting syntax in Markdown for details about how to format text (e.g., bold, italics, lists, headers, etc). See also Programming Historian's Markdown Guide.