[petsc-dev] Commit squashing in MR

Jed Brown jed at jedbrown.org
Tue Mar 2 22:32:45 CST 2021


Satish Balay via petsc-dev <petsc-dev at mcs.anl.gov> writes:

> On Wed, 3 Mar 2021, Blaise A Bourdin wrote:
>
>> Hi,
>> 
>> This is not technically a petsc question. 
>> It would be great to have a short section in the PETSc integration workflow document explaining how to squash commits in a MR for git-impaired developers like me.
>> 
>> Anybody wants to pitch in, or explain me how to do this?
>
> To squash commits - I use the 'squash' action in 'git rebase -i HASH' and figure out the HASH to use from 'gitk main..branch'
>
> [as git rebase requires the commit prior to the first commit of interest]
>
> git provides many ways of modifying the branch (and the rebase topic is very generic) so I think its best to rely on proper git docs/tutorials
> [and its not really specific to petsc workflow]

You can do it in one line, without changing the base:

  git rebase -i $(git merge-base main HEAD)


An alternative is

  git rebase -i main

which gives you interactive rebase to replay on top of current 'main'. This does two things at once and changing the base for your branch is not always desirable.


More information about the petsc-dev mailing list