I was supposed to perform subtree pull --squash
for a third-party module that my project depends on, but I accidentally forgot to put --squash
. Now my project commit history is flooded with the third-party module commits. They are scattered all over the log.
This mess needs to be gone. How would I identify all the commits that belongs to the third-party module, squash them into one, and then purge them from my project history, if possible at all?
More info:
Note that I have done several commits, that I intend to keep, after the broken operation.
git reflog
to find your project's state from before you did the broken operation.git reset --hard
to it.