I have a case where history of the library upon which I made my work, and of my work have diverged. Some time after I branched off of the original branch that contains library 1.0, the library's developer released an update, which I need to incorporate into the end result, keeping my changes that were made on top of that.
There is already an answer to a similar question here. However, many experienced Git users do not recommend rebasing commits that are already public, and for a good reason: the history will be re-written. Anything attached to the previous commits will be lost. Keeping pull requests for "book-keeping" will become useless. So, what is the best approach if I want to achieve a similar result, but keep the history sane, and, more importantly, have the local repositories of collaborators consistent?
I expect that the developer of the underlying library will make new releases once in a while, and this process needs to be repeated every time, with all the drawbacks. The graph would look something like this:
product ------P1--P2--P3--P4'--P5--P6'
/ / /
library ---L1----------L2-------L3
Anyone?