From: Junio C Hamano Date: Fri, 23 Feb 2018 06:04:07 GMT Subject: Re: RFC: git squash Message-ID: In-Reply-To: Julius Musseau writes: > git squash [] > > Squashes ..HEAD into a single commit. Replaces HEAD with the > result. If not specified, defaults to the current branch's > upstream (a.k.a. @{upstream}). > > Rationale: > > This command provides an intuitive mechanism for in-place squash that > doesn't drop dirty merge results. > > We call this an in-place squash because the state of all files and > directories at HEAD does not change. Only the ancestory of HEAD > changes: its (only) parent becomes the merge-base of and > HEAD, removing all intermediate commits. So is it essentially the same as git reset --soft $(git merge-base $commit HEAD) git commit with some icing for coming up with a default log message? The above won't touch the working tree at all.