Let's say contributor
has submitted a pull request to your (author
) project (repo
). They have made changes on their
branch feature
and have proposed to merge this into origin/master
, where
origin -> https://github.com/author/repo.git
Now say you would like to make commits to their PR and push those changes. First, add their fork as a remote called
contributor
,
> git remote add contributor https://github.com/contributor/repo.git
such that,
> git remote -v
origin https://github.com/author/repo.git (fetch)
origin https://github.com/author/repo.git (push)
contributor https://github.com/contributor/repo.git (fetch)
contributor https://github.com/contributor/repo.git (push)
Next, pull down their list of branches,
> git fetch contributor
and create a new branch (contributor-feature
) from the branch that they have created the PR from,
> git checkout -b contributor-feature contributor/feature
Now make any changes you need to make on this branch. If you'd like to rebase this PR on top of the master branch of the primary repository,
> git rebase origin/master
Finally, push the changes back up to the PR by pushing to their branch,
git push contributor contributor-feature:feature
Note that if you did a rebase, you'll need to add the --force
(or -f
) flag after push
. The author of the PR
also may need to explicitly allow you to push to their branch.
It's an example only, if you use https or git protocol is up to you, git needs more setup anyway. Is better to use https in examples to not confuse newbies.