Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Rebase on github branch

Say I do the following steps:

  • fork some project, create a topic branch
  • push that branch over at GitHub
  • request a pull from that branch to the original project

However, I get some comments to improve stuff on the code.

  • I fix up the code, do a commit
  • Rebase to squash old commits

Problem is, I can't push it anymore to the topic branch over at GitHub.

What's the best way of handling this then?

like image 617
jvliwanag Avatar asked Sep 03 '11 13:09

jvliwanag


1 Answers

Once rebased, you cannot just add new commits on the forked repo (since you have replayed those commits during the rebase, rewriting their SHA1), you have to force your push:

git push -f

And then re-do your pull request.

This is ok since nobody has yet cloned your repo and started to used your branch.

If that branch was already used, follow that blog post:

Important: If you've already pushed commits to GitHub, and then squash them locally, you will not be able to push that same branch to GitHub again.
Create a new branch--like 100-retweet-bug-squashed or 100-retweet-bug-rc1 (for release candidate 1)--and squash your commits there.
Once everything is squashed and ready, push the new squashed branch to GitHub and send your pull request to Gina.

like image 139
VonC Avatar answered Oct 06 '22 03:10

VonC