Re: Fwd: Idea: add --squash to cherry-pick

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

 



Am 11.08.22 um 10:53 schrieb Noam Yorav-Raphael:
> The need is described in this Stack Overflow question:
> https://stackoverflow.com/q/35123108. It's fairly popular (107 votes
> for the question, 154 for the best answer), but I find the suggested
> solution lacking.
> 
> Basically, I would like to add a flag --squash to the cherry-pick
> command, that would apply the diff between the start and end of the
> specified range in one operation.
> 
> The use case is that there's a feature branch which I would like to
> apply on another branch as one commit.
> 
> I could use the `-n` flag to apply all the commits from the source
> branch without committing them. However, if there are conflicts, I
> would have to deal with them on every commit applied. Instead, what I
> want is to just apply the diff between the first and last commit, and
> then deal with the conflicts.
> 
> I find this to be a very natural operation. Usual cherry-pick applies
> the difference between commit A^ and commit A over HEAD. The suggested
> `git cherry-pick --squash A..B` would apply the difference between
> commit A and commit B over HEAD.

That question on Stackoverflow asks "how to do X with Y". But Y (git
cherry-pick) is the wrong tool to do X (apply commits from a branch to
somewhere else in squashed form).

   git diff A...B | git apply --3way

would do what you want. You would have to come up with a new commit
message anyway, so cherry-pick would be of little use there.

-- Hannes



[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]

  Powered by Linux