Lesson 5: Introduction to GitHub for managers (non-programmers)
Back to Home
Overview:
Getting started
GitHub itself isn’t much more than a social network like Facebook or Instagram. You build a profile, upload projects to share and connect with other users by “following” their accounts. While many users store programs and code projects, there’s nothing preventing you from keeping text documents or other file types in your project folders to share publicly (or privately). It is capable of storing any file type from text, to structured data, to software. And more features are being added by the day. The real power of Git, however, is less about individuals publishing content (many places can do that, including google docs etc). It is more about that content being easily shared, built upon, and credited in a way that is robust to the realities of distributed collaboration. While the power of GitHub is daunting, you don’t actually have to be a blackbelt to gain a lot of benefit from using it. You don’t even have to know how to code or use the command line. It is a powerful way to organize projects with multiple participants.
Organization
Git supports the following types of primary entities:
- Individual: A person who contributes to GitHub (that’s you!)
- Example individual http://github.com/jmcmurry
- Organization: An entity that may correspond to an actual organization (such as a university) or to a meaningful grouping of repositories. Organizations are like individuals except that they can establish teams.
- Example organization: http://github.com/data2health
- Repository: A collection of versioned files (of any type)
- Example repository http://github.com/data2health/mtip-tutorial
- Teams: A group of individuals assembled by the administrators of an organization. An individual may participate in many teams and organizations, however a team is always bound to a single organization. Nesting teams saves time; instructions here.
The relationships between any combination of these entities is many-to-many, with the nuanced exception of repositories. For our purposes today we will oversimplify by saying that a repositoy belongs either to a single organization or to a single individual.
Task - create a new GitHub repository
- Create your GitHub account if you do not already have one
- Customize your avatar if you haven’t already
- Go to settings and upload any picture (it doesn’t have to be your face)
- Create a repository
- For directions specific to CD2H Phase II projects, see the FAQ here
Markdown
Content in GitHub is written using Markdown, a text-to-HTML conversion tool for web writers (ref).
For more help with Markdown, see this GitHub guide.
Raw markup syntax | As rendered |
---|---|
Header - use # for H1, ## for H2, etc. |
# Header, ## Header (note, the header is not displaying properly in this table) |
Emphasis, aka italics, with *asterisks* or _underscores_. |
Emphasis, aka italics, with asterisks or underscores. |
Strong emphasis, aka bold, with **asterisks** or __underscores__. |
Strong emphasis, aka bold, with asterisks or underscores. |
Combined emphasis with **asterisks and _underscores_**. |
Combined emphasis with asterisks and underscores. |
Strikethrough uses two tildes. ~~Scratch this.~~ |
Strikethrough uses two tildes. |
Lists:
To introduce line breaks in markdown, add two spaces
For a bulleted list, use * or - (followed by a space)
Here is an example of a list:
One
Two
Three
Here is an example of a bulleted list:
- One
- Two
- Three
Task - update the content in your README
- Go back to the repository you just created
- Click the pencil icon in the right corner of your README.md file
- Add some content to your file that includes a header, italics, bold, strikethrough, and lists
- You can preview your changes before committing by clicking ‘Preview changes’.
- Commit your changes by clicking the commit button at the bottom of the page.
Content types
GitHub can store any kind of content, provided it isn’t too big. (And now even this is possible). However, it is more capable for some filetypes than it is for others. Certain filetypes can be viewed ‘natively’ within the GitHub interface. These are:
- Images: png, jpg, svg
- GEOJSON
- CSV, TSV (note that files named type ‘.tab’ will not render properly in the UI.)
- Markdown
- Software code (eg. including json, HTML, xml etc)
Task - add content to your repository
- Click on the code button
- Click upload file
- Upload a file by dragging and dropping or browse for file
- Trying uploading an Excel file vs a TSV or CSV file. How are these displayed differently?
Chat
- For realtime help with this tutorial, please go to our Gitter chat here. You will need to log in with GitHub (preferable) or Twitter.
Additional Resources
- Frequently Asked Questions
- Git and GitHub for Documentation
- Markdown Cheatsheet
- Git 101: Git and GitHub for Beginners
- Mastering Issues (10 min read)