git/list[1] front-page[2] threads[3] people[4] search[5] about
 

Re: RFC: git squash

From
Junio C Hamano <gitster@pobox.com>
Date
Feb 23, 2018, 06:04 UTC
Message-ID
<xmqqfu5sutrc.fsf@gitster-ct.c.googlers.com>
In-Reply-To
<CAA7Zk=tMMPE_Ov6cSJuzgYwWmTuMTSd_909c5JY3a2k5KFzHgQ@mail.gmail.com>
Julius Musseau <julius@mergebase.com> writes:
Show 15 quoted lines
> git squash [<commit>]
>
> Squashes <commit>..HEAD into a single commit. Replaces HEAD with the
> result.  If not specified, <commit> 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 <commit> 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.

Previous: Julius MusseauNext: Julius Musseau
Message 2 of 4 in “RFC: git squash”
  1. Julius MusseauFeb 23, 2018
  2. Junio C HamanoFeb 23, 2018
  3. Julius MusseauFeb 23, 2018
  4. Junio C HamanoFeb 23, 2018

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.