Hi,
make a fork of master on GitHub [1] (hit the fork button in the upper
right corner) and clone the fork to your local machine:
$ git clone git@github.com:<your_username>/RIOT.git
or, if you already cloned the RIOT-OS repository just add it as another remote
$ git remote add mine git@github.com:<your_username>/RIOT.git
$ git fetch mine
It's important to use the SSH-URL here so you have push rights to that
remote (I think instead of SSH you can actually also use the HTTP-URL
for push rights, but I'm not sure and never tried that).
Create a new branch from master
$ git checkout -b gnrc_ipv6/pr/udp-fix master
Apply your changes and commit them
$ git commit -am "gnrc_ipv6: fix UDP issue"
Maybe describe the fix a little bit better but keep it under 72
characters in the subject line
Push to your repo:
$ git push -u mine gnrc_ipv6/pr/udp-fix
Ideally there is a new button on GitHub [1] now, that gives you the
ability to create a Pull Request to the main repository for your
branch, but if not (might happen if your master branch was a little
older). You have two ways of fixing this. The harder, but cleaner
approach (which you might need to do anyways so better do it), would
be to rebase:
$ git fetch origin
$ git rebase origin/master
# fix merge conflicts that might occure using if you are on ubuntu:
installing Meld (`sudo apt-get install meld`) provides a nice GUI to
resolve them
$ git mergetool # ... resolve merge-conflict (1)
$ git rebase --continue # ... resolve merge-conflict (2)
# you might have to repeat that step several times depending on the
number of commits that end up in your branch
$ git push -f # force-push to your branch
The easier way is just to follow this piece of instruction [2]. But if
there is a merge conflict the reviewer might ask you to rebase anyway.
[1] https://github.com/RIOT-OS/RIOT
[2] https://help.github.com/articles/creating-a-pull-request/