What is GitHub and Why Should You Care?

octocat_darkwood_small

What is Github?

Whether you’re just starting out or already a full time developer, you know that GitHub is where you need to be. But, why are programmers so excited about GitHub?

Learning the Basics

Imagine you are making your grandma’s amazing cookie recipe for the first time. While mixing the dough, you realize that it could use a few more chocolate chips so you toss them in. In a perfect world, you would go back to the recipe and add your revision of “moar chocolate” before putting the recipe away. In the real world though, you won’t change the recipe and you’ll just remember next time, because more chocolate is easy to remember.

But what if you work in a restaurant with cooks across the country who share the same recipe? If you were using git to track your cookie recipe then this wouldn’t be a problem, because before you put that recipe away git would say “Hey it looks like you added some chocolate to this recipe, would you like to add that to the permanent recipe?” You’d agree and other cooks would start baking the new and improved chocolatey recipe.

Understanding a Git

GitHub is essentially the place where you store the code that tells the baker how to make cookies. It is the best place to share code with friends, co-workers, classmates, and total strangers. But to really understand GitHub, you need to understand what a “git” is.

A “git” is a version control system. This system means that when you, the developer, create something and make changes to the code or release new versions, you’ll be able to keep track of all the modifications in a central repository.

It can even track of of revisions others make so you save changes and improvements after collaborating. Developers can download a new version of the software, make changes, and upload the newest revision. And everyone can see these new changes, download them, and contribute.

Repos and Forks, Oh My

Before we get into features, lets look at what a repository (or “repo”) is. Basically, it’s a location where all the files for a particular project are stored. Each project has its own repo and can be accessed by a unique URL.

Accessing repos leads to “forking.” Forking is when you create a new project based off of another project that already exists. This is a really cool feature because it encourages the further development of programs and other projects. If you find a project on GitHub that you’d like to contribute to, you can fork the repo, make the changes you’d like, and release the revised project as a new repo. If the original repository that you forked to create your new project gets updated, you can easily add those updates to your current fork.

To tie it all together, the “Hub” in GitHub is essentially where you store your projects and collaborate with other programmers.

Above all, GitHub is popular because of the awesome features that it offers:

Field-tested Tools for any Project

GitHub is the largest code host on the planet with over 25.3 million repositories. Large or small, every repository comes with the same powerful tools. These tools are open to the community for public projects and secure for private projects.

Integrated Issue Tracking

A flexible issue tracker lets you stay on top of bugs and focus on features. Your project’s issues page can be as simple or as sophisticated as you like. Filter by open and closed issues, assignees, labels, and milestones. Sort by issue age, number of comments, and update time.

Collaborative Code Review

Code review is an essential part of the GitHub workflow. After creating a branch and making one or more commits, a Pull Request starts the conversation around the proposed changes. Additional commits are commonly added based on feedback before merging the branch.

Easily Manage Teams within Organizations

With teams, you can give your developers as much or as little power as they need — from the ability to create projects on behalf of your organization to read-only access on existing projects. Members can be granted read, read-write, or admin-level access to repositories.

Text Entry with Understated Power

Rather than dozens of buttons, they rely on the simplicity of GitHub Flavored Markdown for formatting text. The autocompleter makes quick work of mentioning people and teams, creating links to other issues, and adding the perfect Emoji.

Syntax Highlighted Code & Rendered Data

GitHub syntax highlighting currently supports over 200 programming languages. Data is as important to us as code, so we’re always looking for new ways to render formats like STL 3D models, CSV files, and GeoJSON maps in the browser.

On the desktop and in your pocket.

Native GitHub applications for Windows and Mac make sharing code simple. You can use them to clone repositories, create branches, browse history, and commit changes with a friendly interface. The mobile web views let you keep track of your projects on the go.

GitHub is important not only for storing your ideas and creations, but for building a public a body of work as an aspiring programmer. It is set to play an ever increasing role in hiring – perhaps more important than LinkedIn for technical jobs – so we recommended joining and being active on the site early in the programming career.

Want more web developer tutorials and how-to’s? Subscribe to our developer newsletter.