Comment by Mic92

1 month ago

I can second that. If there are multiple commits: https://github.com/tummychow/git-absorb is handy to add formatting changes into the right commit after commits already happened.

It looks like git absorb rewrites history. Doesn’t that break your previously pushed branch?

  • That's a controversy I'm not sure you necessarily realise you've stepped into :).

    It's fairly common to consider working and PR branches to be "unpublished" from a mutability point of view: if I base my work on someone else's PR, I'm going to have to rebase when they rebase. Merging to `main` publishes the commit, at which point it's immutable.

    Working with JJ, its default behaviour is to consider parents of a branch that's not owned by you to be immutable.

  • My branch is mine. Don't tell me what I can or can't do. I push WIP stuff all the time, to share code with others for discussion, to get the build to run in parallel while I keep working or just at the end of the day. I freely amend and will squashed before merging (we only allow a single commit per branch to go to master).

    If I or someone else bases something off anything but master that's on them to rebased and keep up to date.

    • My philosophy is that once a PR is open, that's the point at which people should no longer feel free to treat their branch as their own. Even in groups that squash commits, it should still preserve the aggregate commit messages.

      But until that PR is open? Totally with you. There is no obligation to "preserve history" up until that point.

      6 replies →