Re: Flatten history

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 29 July 2013 20:59, Bryan Turner <bturner@xxxxxxxxxxxxx> wrote:
> On 30 July 2013 13:50, Felipe Contreras <felipe.contreras@xxxxxxxxx> wrote:
>> On Mon, Jul 29, 2013 at 8:42 PM, Hilco Wijbenga
>> <hilco.wijbenga@xxxxxxxxx> wrote:
>>> Hi all,
>>>
>>> I have a (public) "feature" branch that has been kept up-to-date with
>>> "master" by regularly merging master back into it. I would now like to
>>> get all the changes from feature but not any of the commits.
>>> Basically, I want to replay all of feature's commits without creating
>>> those commits.
>>>
>>> I thought something like
>>>
>>> git cherry-pick -n abcd^..feature
>>>
>>> should do the trick (while on master, where abcd is the SHA-1 of the
>>> commit where feature was created) but I get conflicts.
>>>
>>> First, why the conflicts? I have done all the merges so cherry-pick
>>> should simply be able to replay them? Second, what is the correct way
>>> of doing this?
>>
>> Perhaps
>>
>> % git cherry-pick -n --no-merges --right-only --topo-order
>> --cherry-pick abcd^..feature
>>
>> --
>> Felipe Contreras
>
> Wouldn't git merge --squash do what you're looking for? It seems like
> the only way to not get conflicts trying to cherry pick is if you
> never had any conflicts while you were merging master into your
> feature branch. "Evil" merges, where you actually have to change code,
> even if it's just to resolve conflicts, don't tend to replay
> correctly.
>
> It seems like this should do it:
> % git checkout master
> Switched to branch 'master'
> % git merge --squash feature
> Squash commit -- not updating HEAD
> Automatic merge went well; stopped before committing as requested
> % git commit
>
> git merge --squash will just apply the changes without creating a
> commit. You can then make any final changes you want to and write your
> commit message for the feature.

Ah, yes "git merge --squash feature" seems to do exactly what I was
looking for. Funny, I thought I did something with rev-list last time
but this --squash is much simpler. :-) Thank you!
--
To unsubscribe from this list: send the line "unsubscribe git" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]