<div dir="ltr"><div dir="ltr"><br></div><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Tue, Mar 2, 2021 at 11:33 PM Jed Brown <<a href="mailto:jed@jedbrown.org">jed@jedbrown.org</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">Satish Balay via petsc-dev <<a href="mailto:petsc-dev@mcs.anl.gov" target="_blank">petsc-dev@mcs.anl.gov</a>> writes:<br>
<br>
> On Wed, 3 Mar 2021, Blaise A Bourdin wrote:<br>
><br>
>> Hi,<br>
>> <br>
>> This is not technically a petsc question. <br>
>> 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.<br>
>> <br>
>> Anybody wants to pitch in, or explain me how to do this?<br>
><br>
> To squash commits - I use the 'squash' action in 'git rebase -i HASH' and figure out the HASH to use from 'gitk main..branch'<br>
><br>
> [as git rebase requires the commit prior to the first commit of interest]<br>
><br>
> 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<br>
> [and its not really specific to petsc workflow]<br>
<br>
You can do it in one line, without changing the base:<br>
<br>
  git rebase -i $(git merge-base main HEAD)<br>
<br></blockquote><div><br></div><div>Oh, this has a side effect that can not be undone with some sort of simple --abort.</div><div><br></div><div>Not for me and  Blaise.</div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left:1px solid rgb(204,204,204);padding-left:1ex">
<br>
An alternative is<br>
<br>
  git rebase -i main<br>
<br>
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.<br></blockquote><div><br></div><div>Humm, sounds interesting. I'll try it. Looks simple. </div></div></div>