From: Shawn O. Pearce Date: Thu, 15 Jan 2009 01:39:13 GMT Subject: Re: how to apply patch in the middle Message-ID: <20090115013913.GC10179@spearce.org> In-Reply-To: <20090115013535.GB6937@b2j> bill lam wrote: > I want to change history to rewrite > > - A - B - C - D - E - .. > > as > > - A - C' - D - E - .. Uh, "git rebase -i A", change "pick" on line "C" to "squash". This should have the same impact as what you are trying. > because rebase/squash cannot automatically resolve conflicts, I > generate a patch file from A to C > > git diff A C >pat > > However I don't know how apply this patch and cancel the old B and C. One way you can insert this is: git rebase -i A^ change "pick" on line "A" to "edit" delete lines "B" and "C". when it stops for amend, don't amend. git apply --index pat git commit -m "my new B and C" git rebase --continue -- Shawn.