Re: squash commits deep down in history
- From
Johannes Sixt <j6t@kdbg.org>
- Date
- Oct 23, 2014, 20:08 UTC
- Message-ID
- <54496036.8080109@kdbg.org>
- In-Reply-To
- <trinity-6a57d894-cc4f-4213-9c51-5c73de2501d0-1414067657189@3capp-gmx-bs48>
Am 23.10.2014 um 14:34 schrieb Henning Moll:
Show 10 quoted lines
> i need to squash several commits into a single one in a automated > way. I know that there is interactive rebase, which can also be > automated using GIT_SEQUENCE_EDITOR. Unfortunately my history is very > large and i need to squash deep down in the history several times. So > using interactive rebase seems not to be the right tool. > > I wonder if i can solve this task using filter-branch? I have a file > that list the SHA1s for each squash operation per line. All SHA1s of > a line are in chronological order (youngest to oldest), or in other > words: the first SHA1 is the child of the second, and so on.
Use git-replace do construct a squashed commit that replaces the last child in each run such that its parent points to the parent of the first in the run. Then use a git-filterbranch without filters to burn the parenthood into the history.
-- Hannes