First you follow the instructions for Making your own copy (fork) of matplotlib.
git clone git@github.com:your-user-name/matplotlib.git
cd matplotlib
git remote add upstream git://github.com/matplotlib/matplotlib.git
Clone your fork to the local computer with git clone
git@github.com:your-user-name/matplotlib.git
Investigate. Change directory to your new repo: cd matplotlib
. 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 matplotlib github repository, so you can merge in changes from trunk.
cd matplotlib
git remote add upstream git://github.com/matplotlib/matplotlib.git
upstream
here is just the arbitrary name we’re using to refer to the
main matplotlib repository at matplotlib github.
Note that we’ve used git://
for the URL rather than git@
. The
git://
URL is read only. This means 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.
Note this command needs to be run on every clone of the repository that you make. It is not tracked in your personal repository on github.
Just for your own satisfaction, show yourself that you now have a new
‘remote’, with git remote -v
, giving you something like:
upstream git://github.com/matplotlib/matplotlib.git (fetch)
upstream git://github.com/matplotlib/matplotlib.git (push)
origin git@github.com:your-user-name/matplotlib.git (fetch)
origin git@github.com:your-user-name/matplotlib.git (push)
matplotlib/matplotlib
¶If you have commit rights to matplotlib/matplotlib
the git://
protocol URL will still be read-only (due to it not supporting
authentication and restrictions on github’s side). To reduce the
chance of accidentally pushing to upstream, we suggest setting up a
read-only remote of upstream as above and a read/write remote as
git remote add DANGER git@github.com:matplotlib/matplotlib.git
or
git remote add HOLY_COMMIT_RIGHTS_BATMAN https://github.com/matplotlib/matplotlib.git