# Contributing to an Open Source Project

With [GitHub][1] and [Git][2], contributors can **fork** a project, make changes to it, and 
contribute their changes back to the original repository by creating a **Pull Request**.

## Forking

If you want to contribute to an existing project to which you don’t have push access, you can 'fork' 
the project. Fork is just a copy of a repository, saved to GitHub. The fork is created under your 
user account and anything done there is not impacting the original repository.

To [fork a project][3] using GitHub Web interface, visit the project page and click the 'Fork' button 
at the top-right of the page. When the forking process is finished, you will be taken to your copy 
of the forked repository.

To work on the forked repository locally on your computer you will have to [clone the remote repository][4].

After making changes to the cloned repository and [pushing them to your remote repository on GitHub][5], 
you are ready to propose contributing your changes back to the original repository by creating a Pull 
Request.

## Pull Request

Requesting a Pull Request starts the process of getting your changes into the original repository. 
This is done using [GitHub Web interface][6] from the repository on GitHub where your project lives.

Note that after creating a new Pull Request, every additional changes that you push, will be included 
in that pull request, until the original developer decides to merge that pull request with his 
original code.

---

[1]: /Topics/GitHub
[2]: /Guides/Git/Git%20Overview
[3]: https://guides.github.com/activities/forking/
[4]: /Guides/Git/Working%20with%20a%20Remote%20Git%20Repository#cloning-getting-a-local-copy-of-a-remote-repository
[5]: /Guides/Git/Working%20with%20a%20Remote%20Git%20Repository#pushing-an-existing-local-repository-to-a-remote-repository
[6]: https://guides.github.com/activities/forking/#making-a-pull-request