Requirements and Set Up

Computing

Attendees should have computers. They should also have a bash style terminal. Those with Macs should be fine. Those with windows will need to download Git for Windows and use the GitBash program that comes with that.



Timeline

Introduction ( 0 - 10 minutes)

Provide a brief history of Git and GitHub. Learn what versioning is, and why it is important. Learn the structure of Git and GitHub. Briefly describe some of the application ecosystem surrounding Git and GitHub.

This initial part is a brief slide presentation to present some fundamental concepts. Also allows time for late arrivals.

  • Brief introduction and history of Git
  • Centralize, Distributed and Decentralized Networks
  • Brief introduction and history to GitHub


Basic Versioning ( 10 - 25 minutes)

The heart of Git is versioning. In this unit we’ll create a basic text document. Make some changes and track those changes using the Git command line tool.

  1. Create a repository
  2. Create a simple text document
  3. Commit
  4. Edit it
  5. Commit
  6. Edit it
  7. Commit
  8. Look at the log
  9. revert back changes


Branching ( 25 - 40 minutes)
  • Learn how to create and delete branches
  • Learn how to navigate branches
  • Know how to merge branches
  • Understand some of the uses of branches
  1. Create a new branch
  2. Edit it
  3. Move back to master
  4. Create another branch edit it another way.
  5. Merge branches.


Navigation and Manipulation ( 40 - 55 minutes)
  • Learn how to move between commits
  • Learn three two ways to undo work
  1. Create a new branch
  2. Edit it
  3. Move back to master
  4. Create another branch edit it another way.
  5. Merge branches.


Getting Started With GitHub ( 55 - 75 minutes)

Git becomes an incredibly powerful collaboration and publishing tool when coupled with GitHub. While it may seem confusing at first, GitHub is really just another Git repository. Git has the ability to communicate with any other repository built right in. GitHub just provides a web interface and many other services to help manage and publish our projects.

At this point we refer to the Git repository on our local computer as a _local_ repository. Other copies of our work on other computers are called _remote_ repositories. By convention, we work with our collabortors by coordinating through a single remote repository, in this case GitHub.

In this unit we create a copy of our local repository to GitHub by pushing it. We edit it using the GitHub interface, then pull it back into our local repository.

  1. Create a GitHub repo
  2. LInk with an existing repository
  3. Clone a repositry


Collaborating With GitHub ( 75 - 85 minutes)

One of the biggest benefits of GitHub is how it facilitates collaboration on a number of different levels. Over the years, a culture has grown up around GitHub that specifies several conventions that facilitate collaboration. In this unit, you learn how to add collaborators and work with them on a single repository.

  • Copy Repositories
  • Add collaborators
  • Manage permissions
  • Pull Requests.


More Collaboration ( 85 - 95 minutes)

This section expands on collaborating to introduce collaborating with people even if they aren’t listed as collaborators.

  • Submitting Issues
  • Fork repositories
  • Create pull requests to original repository.


Project Management ( 95 - 105 minutes)

GitHub’s project management tools are some of the most recent and most useful tools of GitHub. Some people don’t even use the versioning and just use the project management tools. For instance, one person managed the renovation of their house using GitHub issues and GitHub Projects.

Just give a tour of the service. Give a little time to play with Github Projects.



Impact and Analytics ( 105 - 115 minutes)

The impact and analytic numbers are useful not only from a project management standpoint, but can also help users decide if a project is worth using in their own work.

Show and tell of the different information shown for a project.



The GitHub Ecosystem ( 115 - 115 minutes)

Ther are a variety of services provided by GitHub and also by third parties that take advantage of GitHub’s open APIs. The remainder of this tutorial surveys some of these services.



GitHub Wiki ( 115 - 125 minutes)

Each GitHub project comes with its own Wiki. This is very handy for extended documentation, meeting notes, and other aspects of a project.

Give a little time to make a page or two.



GitHub Pages ( 125 - 135 minutes)

GitHub also provides a FREE static web page platform. You can use this for just about anything. Common use cases are documentating projects, personal web pages and html slides from talks.

Publishing on GitHub pages really requires its own tutorial (coming soon?). Here we will just publish a simple page based on the content we have already created.



Useful External Github Services ( 135 - 140 minutes)

There are many applications, websites and services that use Git and GitHub in some way. The examples given here are included just to give a little taste of the sorts of things that exist.