Contributing to project on github, how to “rebase my pull request on top of master”

You only show a fetch on the upstream repo. That doesn’t actually update any of your local branches. It only updates your knowledge of upstream. You’d need to ensure upstream/master is fully merged into your master, like with a git pull, prior to rebasing onto master, or more simply just rebase onto upstream/master.

I.e:

git checkout master
git pull upstream master
git checkout feature
git rebase master

or

git checkout feature
git fetch upstream master
git rebase upstream/master

Update:

After fixing your local feature branch, you’ll need to push it back to origin to finish updating the pull request. Since you’ve pushed feature once already, you can’t simply push again because a rebase changes history, and it’s no long a fast-forward. Normally, whan a push fails with a “non-fast-forward”, you’d resolve it by doing a pull, but a pull will just combine the two divergent histories, which is definitely not what you want. That would mean your old (pre rebase) feature branch would be combined with the new (post rebase) one. You want to overwrite origin/feature with the state of the new feature branch, dumping any record of the old one. That means you’ll want to force the push to happen, even though it’s not a fast-forward, using git push -f origin feature. Note: force pushing is dangerous, and you can lose commits with it. Only use it if you’re absolutely sure you know what you’re doing, like right here, where you intentionally want to drop the old, useless commits in the pre-rebase feature branch.

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)