Set up your fork
First you follow the instructions for :ref:`forking`.
Overview
git clone git@github.com:your-user-name/ipython.git cd ipython git remote add upstream git://github.com/ipython/ipython.git
In detail
Clone your fork
Clone your fork to the local computer with git clone git@github.com:your-user-name/ipython.git
Investigate. Change directory to your new repo: cd ipython. Then git branch -a to show you all branches. You'll get something like:
* master remotes/origin/master
This tells you that you are currently on the master branch, and that you also have a remote connection to origin/master. What remote repository is remote/origin? Try git remote -v to see the URLs for the remote. They will point to your github_ fork.
Now you want to connect to the upstream `ipython github`_ repository, so you can merge in changes from trunk.
Linking your repository to the upstream repo
cd ipython git remote add upstream git://github.com/ipython/ipython.git
upstream here is just the arbitrary name we're using to refer to the main ipython_ repository at `ipython github`_.
Note that we've used git:// for the URL rather than git@. The git:// URL is read only. This means we that we can't accidentally (or deliberately) write to the upstream repo, and we are only going to use it to merge into our own code.
Just for your own satisfaction, show yourself that you now have a new 'remote', with git remote -v show, giving you something like:
upstream git://github.com/ipython/ipython.git (fetch) upstream git://github.com/ipython/ipython.git (push) origin git@github.com:your-user-name/ipython.git (fetch) origin git@github.com:your-user-name/ipython.git (push)