What is GitHub?

GitHub is a web-based platform that provides hosting for software development and a set of tools for version control using Git. Created by Tom Preston-Werner, Chris Wanstrath, and PJ Hyett in 2008, GitHub has become one of the most popular platforms for developers to share code, collaborate on projects, and even showcase their portfolio.

Why is GitHub Useful?


GitHub makes it extremely easy for multiple people to work on the same project. Features like forks, pull requests, and issues help facilitate effective collaboration.

Version Control

Built on Git, GitHub provides robust version control capabilities, allowing you to keep track of changes, revert to previous states, and work on different branches simultaneously.


GitHub is not just for code. It’s widely used for documentation, thanks to support for Markdown and GitHub Pages which can turn repositories into full-fledged, static websites.

Key GitHub Features and Examples

  • Repositories: Central locations for storing all of your project’s files and revision history.

  • Commits: Save changes to the repository.

    git add .
    git commit -m "Your message here"
  • Issues: Report bugs, request features, and manage tasks in a project.

  • Actions: Automate tasks like building, testing, and deploying your code.

  • GitHub Pages: Host websites directly from a GitHub repository.

Best Practices

Write Clear Commit Messages

Commit messages should be concise and describe what was done and why. This makes it easier to review changes later.

Use READMEs and Documentation

Always include a file to explain what your project is, how to set it up, and how to use it. Good documentation encourages collaboration.

Collaborate Effectively

Make use of GitHub features like Projects, Milestones, and Labels to organize and track work on your repositories.

By adhering to these best practices, you can make the most out of GitHub’s myriad features for both personal and collaborative projects.

Working with Git and RStudio on Raven

related - getting a Personal Access token -