Git Extensions: Squash commits?

There are multiple ways of doing a squash.

Here’s how you can easily squash the current and all its immediate parent commits into a single commit in Git Extensions:

  1. Right click on a commit you wish to squash to and select “Reset the current branch to here”
  2. Select either “Soft reset” (retain staged files) or “Mixed reset” (unstage all files)
  3. Stage, if necessary
  4. Commit

Here’s an animation of the above:

enter image description here


Another way is to do an “interactive rebase” either

  • via a command line (git rebase -i, read docs), or
  • via UI (e.g. Git Extensions).

To do an interactive rebase in Git Extensions:

  1. Right click on a commit you wish to squash to and select “Rebase current branch on > Selected commit interactively…”
  2. In the presented dialog alter the history, such as choose which commits to squash or reword
  3. Save and close

Here’s an animation of the above:

enter image description here

Leave a Comment

Hata!: SQLSTATE[HY000] [1045] Access denied for user 'divattrend_liink'@'localhost' (using password: YES)