To understand the reason for this, you need to understand the implications of rewriting history in Git. BFG is a tool that overwrites Git, captures and therefore the history of your project.
Git tracks commit through commit hashes. A concat hash is calculated in several ways: the hash of the parent, the contents of the repo (tree hash), author, committer, date / time of the commit, commit message, etc. If any of these changes changes, for example, the contents of the file, parent commit, then the hash commit will change when this message is overwritten during cleanup. Starting with the first such commit you rewrite, each subsequent commit will be different and have a different hash, regardless of whether it was rewritten or not, since the parent hash will differ from this point forward.
In a repo universe cloned / forked from an upstream repo, Git can determine where divergence occurred by comparing a common / new commit (hashes). Since you rewrote the story in your clone, it now diverges from the upstream point of the first commit that you rewrote. This is what Git tells you when explaining your branch forward / backward.
If you only rewrite, you do it in your own fork, since you are forked and you have not merged, then this is unlikely to be a big problem. If this is not the case, then if you canโt get the repository back up the river to rewrite your story, then you will always have a potentially big discrepancy.
As Jonathan Brinkโs commentary suggests, itโs best to repackage your peeled commits to the youngest shared commit.
source share