GitHub is a code hosting platform for version control and collaboration. It lets you and others work together on projects from anywhere.
This tutorial teaches you GitHub essentials like repositories, branches, commits, and Pull Requests. You’ll create your own Hello World repository and learn GitHub’s Pull Request workflow, a popular way to create and review code.
To complete this tutorial, you need a GitHub.com account and Internet access. You don’t need to know how to code, use the command line, or install Git (the version control software GitHub is built on).
A repository is usually used to organize a single project. Repositories can contain folders and files, images, videos, spreadsheets, and data sets – anything your project needs. We recommend including a README, or a file with information about your project. GitHub makes it easy to add one at the same time you create your new repository. It also offers other common options such as a license file.
hello-world repository can be a place where you store ideas, resources, or even share and discuss things with others.
Branching is the way to work on different versions of a repository at one time.
By default your repository has one branch named
master which is considered to be the definitive branch. We use branches to experiment and make edits before committing them to
When you create a branch off the
master branch, you’re making a copy, or snapshot, of
master as it was at that point in time. If someone else made changes to the
master branch while you were working on your branch, you could pull in those updates.
This diagram shows:
feature(because we’re doing ‘feature work’ on this branch)
featuretakes before it’s merged into
Branches accomplish similar goals in GitHub repositories.
Here at GitHub, our developers, writers, and designers use branches for keeping bug fixes and feature work separate from our
master (production) branch. When a change is ready, they merge their branch into
readme-edits, into the new branch text box.
Now you have two branches,
readme-edits. They look exactly the same, but not for long! Next we’ll add our changes to the new branch.
Bravo! Now, you’re on the code view for your
readme-edits branch, which is a copy of
master. Let’s make some edits.
On GitHub, saved changes are called commits. Each commit has an associated commit message, which is a description explaining why a particular change was made. Commit messages capture the history of your changes, so other contributors can understand what you’ve done and why.
These changes will be made to just the README file on your
readme-editsbranch, so now this branch contains content that’s different from
Nice edits! Now that you have changes in a branch off of
master, you can open a pull request.
Pull Requests are the heart of collaboration on GitHub. When you open a pull request, you’re proposing your changes and requesting that someone review and pull in your contribution and merge them into their branch. Pull requests show diffs, or differences, of the content from both branches. The changes, additions, and subtractions are shown in green and red.
As soon as you make a commit, you can open a pull request and start a discussion, even before the code is finished.
By using GitHub’s @mention system in your pull request message, you can ask for feedback from specific people or teams, whether they’re down the hall or 10 time zones away.
You can even open pull requests in your own repository and merge them yourself. It’s a great way to learn the GitHub Flow before working on larger projects.
In this final step, it’s time to bring your changes together – merging your
readme-edits branch into the