Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

You're not missing anything. Rebasing off master is the same as a fastforward only merge. It is -i that can actually change the history.


Rebasing and fast-forward merging are two very different things.

whenever you rebase you create _brand new commits_ based off another part of the project history which bear a strong resemblance to the original commits but are nonetheless different.

adding -i allows you to do further modification of commit contents (reordering, squashing, dropping, etc. but a vanilla rebase is still changing history.

Linus addresses this in his mail early on: "People can (and probably should) rebase their _private_ trees (their own work). That's a _cleanup_. But never other peoples code. That's a "destroy history" "


Are you saying when I rebase off of upstream on my private branch does that change the sha1 of the upstream commits?

That hasn't been my experience. As far as I can tell.

Edit: OK, I did a test and I can see that it is changing the sha1 for my commits on my private branch after I rebase from upstream master. So at least the way I'm doing it I'm not changing public comit hashes.


The resulting code may be the same. The resulting repository and history most certainly are not.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: