The Challenge:

Fork a project from and clone it locally.


Now you've made a project locally and pushed it to GitHub, but that's only half the fun. The other half is working with other people and projects.

When you fork a repository, you're creating a copy of it on your GitHub account. Your fork begins its life as a remote repository. Forks are used for creating your own version of a project or contributing back fixes or features to the original project.

Once a project is forked, you then clone (aka copy) it from GitHub to your computer to work on locally.

Step: Fork Patchwork Repository

The project we'll work with is Go to that site and click the fork button at the top right. Once the fork animation is complete, you've got a copy on your account. Copy your fork's HTTP URL on the right sidebar.

Step: Clone Fork Locally

Now, in terminal, clone the repository onto your computer. It will create a new folder for the repository so no need to create one. But make sure you aren't cloning it inside of another Git repository folder! So, if you're still inside of the 'hello-world' repository you worked in on the earlier challenges, back out of that folder. You can leave the folder you're in (and be in the folder that it was inside of) by 'changing directory' with two dots:

$ cd ..

Now clone:

$ git clone <URLFROMGITHUB>

Go into the folder for the fork it created (in this case, named 'patchwork')

$ cd patchwork

Now you've got a copy of the repository on your computer and it is automatically connected to the remote repository (your forked copy) on your GitHub account.

Step: Connect to the Original Repository

But what if the original repository you forked from changes? You'll want to be able to pull in those changes too. So let's add another remote connection, this time to the original,, repository with its URL, found on the right hand side of the original on GitHub.

You can name this remote connection anything you want, but often people use 'upstream', let's use that for this.

$ git remote add upstream

Verify with

git-it verify

Go to the next challenge