• jjjalljs@ttrpg.network
    link
    fedilink
    arrow-up
    5
    ·
    8 months ago

    …and? You squash so all your gross “isort” “forgot to commit this file” “WIP but I’m getting lunch” commits can be cleaned up into a single “Add endpoint to allow users to set their blah blah” comment with a nice extended description.

    You then rebase so you have a nice linear history with no weird merge commits hanging around.

    • cobra89@beehaw.org
      link
      fedilink
      arrow-up
      1
      ·
      7 months ago

      Okay honest question, when you merge a PR in GitHub and choose the squash commits box is that “rebasing”? Or is that just squashing? Because it seems that achieves the same thing you’re talking about.

      • jjjalljs@ttrpg.network
        link
        fedilink
        arrow-up
        3
        ·
        7 months ago

        There’s two options in the green button on a pr. One is squash and merge, the other is squash and rebase.

        Squashing makes one commit out of many. You should IMO always do this when putting your work on a shared branch

        Rebase takes your commit(s) and sticks them on the end.

        Merge does something else I don’t understand as well, and makes a merge commit.

        Also there was an earthquake in NYC when I was writing this. We may have angered the gods.

        • cobra89@beehaw.org
          link
          fedilink
          arrow-up
          1
          ·
          7 months ago

          Lmao I’m in the NYC area and my whole house shook. I’m right there with you. Thanks for the explanation!

    • GissaMittJobb@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      7 months ago

      You squash so all your gross “isort” “forgot to commit this file” “WIP but I’m getting lunch” commits can be cleaned up

      The next step on the Git-journey is to use interactive rebasing in order to never push these commits in the first place and maintain a clean history to be consumed by the code reviewer.

      Squashing is still nice in order to have a one-to-one relationship between commits on the main branch to pull requests merged, imo.