Everytime I read the git-rebase documentation, I get lost. It feels to me like a kind of a low-level operation (read: dark magic).
Quoting the docs:
Assume the following history exists and the current branch is "topic":
From this point, the result of either of the following commands:A---B---C topic / D---E---F---G master
would be:git rebase master git rebase master topic
A'--B'--C' topic / D---E---F---G master
The question is: Why would anyone want to do such a thing?
For one thing, it seems to "re-write" history, as if the branch started at a different point; essentially the commit history will be "a bunch of lies".
Another point, it doesn't feel safe. I tried it once, got a ton of conflicts, and all hell broke loose. I don't remember exactly how I resolved that hell, but IIRC it was on a temporary test branch or something like that.
The other question: Am I missing some really cool/time-saving set of features by not knowing how to utilize git-rebase
?
EDIT:
Related question: Undoing a git rebase