A Beginner’s Guide to GitHub

Github Logo Monitor

By Adrienne Dreyfus

Building a website often involves several developers who make changes to many files at once. Tracking these revisions can be a headache, and when something breaks on a site, it’s important to find the change that introduced the problem as soon as possible. Developers turn to version control systems to track these changes and simplify collaboration.

GitHub is a platform that takes this workflow a step further. Built on top of the popular open-source version control system Git, GitHub allows developers to share their code and receive feedback and contributions from the public. Because of this transparency, GitHub has become an integral part of the open-source software revolution, as many companies, including Google and Apple, choose to release portions of their software for free via the platform.

How GitHub Works

GitHub uses Git to manage file revisions and history.

Typically, a developer uploads a copy of their code to a new "repository" on GitHub, which keeps track of those files. When a developer makes a change on their computer to a file that’s stored on GitHub, they can "push" that local change to the copy that’s in the remote repository. These changes can be submitted via GitHub's website, its desktop application, or by using the computer's command line interface.

Web developers aren't the only people who can make changes to files in a repository. Designers can also use it to update images, and content teams can use it to make copy changes. GitHub's user-friendly interface makes it simple for cross-functional teams to collaborate on the same files. All of the changes are tracked, so it's possible to revert to an old version of a file. GitHub also enables a developer to create their own copy of another developer's repository and make changes without affecting the original files.

GitHub’s Main Features

On top of its basic functionalities, GitHub has many user-friendly features for streamlining a developer’s workflow. With additional capabilities for Enterprise and Education accounts, GitHub is widely used across companies, universities, and independent developers to share code.

Here are a few of its most popular features:

  • Issues: GitHub provides a way for developers to submit any issues or bugs they find in the code. An issue creates a page that allows for discussion about the problem and can track any code changes that address it.
  • Documentation: Proper documentation is essential if you want other developers to be able to understand and contribute to your project. This input can help fix bugs or add new features within the code without close supervision from you as the owner. GitHub encourages this by supporting HTML markdown files, which developers can use to create robust and structured documentation.
  • Pull requests: A pull request allows developers to suggest changes to code. The user can open a pull request with the changes they have in mind, and the code’s maintainer can decide whether or not to merge these changes into the code base. GitHub provides an online interface on which developers can see proposed code changes and leave comments.
  • GitHub Pages: GitHub can also host a free basic website in one repository. This allows each user to create a rich web page that’s associated with their GitHub account.
  • Social features: GitHub offers a robust set of social features designed to encourage collaboration on projects. A user on GitHub can “watch” a project and receive notifications when a pull request is created or an issue is opened. By “starring” repositories, users can keep track of their favorite projects. Each project has its social metrics featured prominently on the repository page so users can gain an understanding of its popularity and support

GitHub at General Assembly

At General Assembly, our coding students learn the ins and outs of GitHub through practice, whether they are building a foundation in HTML, CSS, and JavaScript in our part-time Front-End Web Development course, diving into our dedicated JavaScript Development course, or embarking on a coding career in our Web Development Immersive, on campus or online.

Students submit homework assignments via their own repositories, where they receive feedback from their instructors. After graduating, they also use it to showcase their projects and take advantage of GitHub Pages to easily host free websites. We encourage our students to explore open-source tools, such as jQuery or Bootstrap, and they leave able to contribute back to them and continue their own work.

Meet Our Expert

Adrienne Dreyfus is a software engineer who loves tackling large problems with clean code. She's deployed code at LinkedIn and Code for America to help people find jobs, and worked on software for fitness trackers at Fitbit to help people stay healthy. She loves teaching web development through Intro to Coding workshops and Front-End Web Development courses at General Assembly's San Francisco campus. When she's not inside coding, she's probably outside with her dog, Rocky Balboa.

“Coding skills are in high demand today, as most businesses need a strong online presence. By learning HTML, CSS, and JavaScript, you’ll better understand how websites work and be able to create sites of your own.”

Adrienne Dreyfus, Front-End Web Development Instructor, General Assembly San Francisco