Yeah learned this the hard way.

  • Mr. Satan@lemmy.zip
    link
    fedilink
    arrow-up
    4
    ·
    2 days ago

    Same… My usual strategy: rebase, if conflict abort and merge, if no conflict continue; merge always with explicit commits to master / main (no fucking squashing); keep task references in branch names and commit messages.

    • balsoft@lemmy.ml
      link
      fedilink
      arrow-up
      1
      ·
      1 day ago

      Same, but typically I will just resolve the conflicts during the rebase. Makes for cleaner commit history. Merge commits are for combining multiple big unrelated pieces of work together, where rebasing would be too annoying (let’s say 100s of commits each).

      • Mr. Satan@lemmy.zip
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        1 day ago

        In my cases I has to solve same code conflicts multiple times during a rebase, so I just don’t try them when hit with conflicts.

        I fail to see the benefits of “clean” git history

        • balsoft@lemmy.ml
          link
          fedilink
          arrow-up
          1
          ·
          1 day ago

          In my cases I has to solve same code conflicts multiple times during a rebase, so I just don’t try them when hit with conflicts.

          Yeah if you have two branches, both with a bunch of commits which all modify the same areas of code, and reordering the commits doesn’t help, I can see how it is easier to merge.

          I fail to see the benefits of “clean” git history

          Well, if the commit history is clean and mostly linear, it’s much easier to read, understand and review. git blame will also be much nicer which is really important for debugging big codebases. Of course it’s a tradeoff, as usual.

          • Mr. Satan@lemmy.zip
            link
            fedilink
            arrow-up
            1
            ·
            1 day ago

            Maybe I just haven’t been exposed to bad examples. Never had any issues with blame and merge commits.