# Add the remote, call it "upstream":
git remote add upstream https://github.com/whoever/whatever.git
# Fetch all the branches of that remote into remote-tracking branches,
# such as upstream/master:
git fetch upstream
# Make sure that you're on your master branch:
git checkout master
# Rewrite your master branch so that any commits of yours that
# aren't already in upstream/master are replayed on top of that
# other branch:
git rebase upstream/masterIf you've rebased your branch onto upstream/master you may need to force the push in order to push it to your own forked repository on GitHub. You'd do that with:
git push -f origin master
You only need to use the -f the first time after you've rebased.
-
track upstream :
git remote add --track master upstream git://github.com/upstreamname/projectname.git -
then fetch, rebase, and push :
git fetch upstream git checkout master git rebase upstream/master git push origin master
-
add
pull requestfrom a new branch :git checkout -b newfeatureSo,
masterremains clean (even if pull request is rejected)