QBT - Command squashCommits


For each repository in your manifest, do a log between the revision at HEAD and the revision at HEAD~, and if the diff contains more than one commit in that sattelite, rewrite that change as a single commit, then replace the manifest commit with an equivalent commit that has that squashed commit.

$ qbt squashCommits

Operate only on the meta_tools repository

$ qbt squashCommits --repo meta_tools

See Common Options for options shared by most or all commands.


qbt squashCommits is a handy shortcut for a task you might want to do if you ever accidentally run a git commit or qbt commit when you meant to put in --amend but forgot. It is also useful if you are taking an extended history and squashing it into a simplified history.

For example, to squash the last three commits in meta, you could do this:

$ git checkout HEAD~3
$ git checkout HEAD@{1} -- qbt-manifest
$ git add . && git commit

You now have a single commit with all the changes in those 3 commits, however, in your sattelites there are still potentially multiple commits represented. You can then squash them by running

$ qbt squashCommits

For more details about how the various commit stages work, see the Extended Tutorial.

vi: ft=markdown