Skip to content

Instantly share code, notes, and snippets.

@reedsa
Last active March 27, 2017 17:35
Show Gist options
  • Save reedsa/cc0e0c6b42318e0ef91ce11ef47a73a6 to your computer and use it in GitHub Desktop.
Save reedsa/cc0e0c6b42318e0ef91ce11ef47a73a6 to your computer and use it in GitHub Desktop.
Introduction to GitHub

Introduction to GitHub

What is GitHub?

GitHub is a platform that hosts code for a Version Control System (VCS) called Git. It helps manage many features of Git that involve repositories, branches, commits, and Pull Requests. Encourages collaboration on projects with features like bookmarking repositories (using stars) or get notifications about updates (watch). Makes it easy to Fork a repository to provide a way for external parties to contribute to a codebase. Also provides labels for issues and Pull Requests to keep things organized.

Project Documentation

GitHub offers tools for project management including issues, wikis, pulse and graphs. Teams can be configured to track features and progress, similar to Pivotal Tracker. README documentation, CONTRIBUTING guidelines, CODE_OF_CONDUCT, PULL_REQUEST_TEMPLATE, ISSUE_TEMPLATE, CHANGELOG, and LICENSE are all great for estabilshing agreements around a project, especially when it is public.

Teams and Organizations

An Organization allows repositories and people to be grouped together and makes it easy to manage permissions.

Pull Requests

Teams using Git should establish a branching workflow to introduce changes into a codebase. There are many workflows that can address different issues with software development. The workflow should be agreed upon ahead of the project implementation and adhere to the rules with very few exceptions. This strategy helps minimize conflicts between changes in the code.

One basic pattern documented by GitHub is called GitHub Flow

  • Create a branch
  • Add commits
  • Open a Pull Request
  • Review and discuss the changes
  • Deploy
  • Merge
Webhooks

GitHub can notify external services when specific events occur on a repository using Webhooks.

  • CircleCI - Build and test project code
Integrations and services

External tools and applications can be configured to extend GitHub with new features.

  • Slack - Send change notifications to Slack channels

Interesting Features

  • Markdown - A markup language to format text
  • Gists - Store public and private files such as code snippets, guides or even full applications as a Git repository
  • GitHub Pages - A place to publish public webpages like documentation or example applications
  • GitHub API - API to integrate a custom application or service with GitHub
  • GitHub Business - Host repositories on GitHub or on private servers

Resources

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment