• AVincentInSpace@pawb.social
    link
    fedilink
    English
    arrow-up
    5
    ·
    edit-2
    10 months ago

    Every time I commit I have to look through git diff, figure out what the hell I actually did, come up with something intelligent to say about jt, possibly split the commit into multiple commits if I changed multiple things, do some shuffling with git reset and git add

    For some reason all my personal projects are all like 4K SLoC with 50 total commits, all of which include apologies for not doing more smaller commits

    • SokathHisEyesOpen@lemmy.ml
      link
      fedilink
      English
      arrow-up
      5
      ·
      10 months ago

      There’s a bigger issue than your commit message if you don’t even know what you just coded and are committing.

      • AVincentInSpace@pawb.social
        link
        fedilink
        English
        arrow-up
        2
        ·
        edit-2
        10 months ago

        You see, sometimes I code something, go to bed before finishing it, come back, decide not to commit because then I’d have to think of a commit message and I just want to code, start working on an unrelated feature, do that for a couple days, get distracted by life stuff and put the project down for a few weeks/months, rinse and repeat, and then I finally get around to writing a commit message because I’m about to start a huge change and I want a restore point and I’m like. Okay, it’s been like 3 months since my last commit, I’m pretty sure my code can now do something it couldn’t 3 months ago but come on, I can’t even remember what I had for lunch last Thursday

        I’m well aware this is terrible practice but I don’t know how to stop doing it

        • dukk@programming.dev
          link
          fedilink
          arrow-up
          1
          ·
          10 months ago

          Commit more often. Maybe work in a different feature branch, and don’t be afraid to commit your half-working crappy code. If it’s a personal project/fork, it’s totally acceptable to commit often with bad commit names and small unfinished changes: you can always amend/squash the commits later. That’s how I tend to work: create a new branch, work on the feature, rebase and merge (fast forward, no merge commit). Also, maybe don’t jump around working on random features :P

        • SokathHisEyesOpen@lemmy.ml
          link
          fedilink
          English
          arrow-up
          1
          ·
          10 months ago

          You can help yourself a lot here by making commits every time you make a meaningful change. A feature doesn’t need to be complete to commit major checkpoints along the path to completion. That’s what feature branches are for. Commit often. It’ll help you think of messages, and it’ll help you recover in the case of catastrophe.

      • akkajdh999@programming.dev
        link
        fedilink
        arrow-up
        1
        ·
        10 months ago

        I just get too excited about actually implementing/fixing something (random things that I see along the way) more than commit ceremony (nobody will care about it in my project anyway other than one random guy who gave the repo a star)

        • oce 🐆@jlai.lu
          link
          fedilink
          arrow-up
          2
          ·
          10 months ago

          Nah, I’m that guy, I gave your repo a star for the effort, but I’m not reading your history.

  • lil@lemy.lol
    link
    fedilink
    English
    arrow-up
    3
    ·
    10 months ago

    You should not use -m, you should write commit body!

  • paul@techy.news
    link
    fedilink
    English
    arrow-up
    3
    arrow-down
    1
    ·
    10 months ago

    do git commit -v and then just summarize the diff you have in your editor in a human readable form.

    • DontTakeMySky@lemmy.world
      link
      fedilink
      arrow-up
      0
      ·
      10 months ago

      Don’t just summarize the content though, summarize the rationale or how things connect. I can read your diff myself to see what changed, I want to know the logical connections, the reason you did X and not Y, etc.

      Or just say “stuff” and provide that context in the PR description separately, no need to overdo the commit log on a feature branch if you’re using squash merges from your PR.

      • deadbeef79000@lemmy.nz
        link
        fedilink
        arrow-up
        1
        ·
        edit-2
        10 months ago

        P1000x this.

        I can read a diff.

        I need to know why.

        No, a code comment isn’t good enough, it’s out of date after the next commit.

        • DontTakeMySky@lemmy.world
          link
          fedilink
          arrow-up
          0
          ·
          10 months ago

          Code comments for "why"s that persist. Commits for why’s that are temporary.

          If you need to run X before Y, add a comment. If you added X before why because it was easier, leave it in a commit

  • syd@lemy.lol
    link
    fedilink
    arrow-up
    2
    ·
    10 months ago

    I’m using Copilot for it right now. It works on half of the cases.

      • foxymulder@lemmy.ml
        link
        fedilink
        English
        arrow-up
        2
        ·
        10 months ago

        “patch mode” - Patch mode allows you to stage parts of a changed file, instead of the entire file. This allows you to make concise, well-crafted commits that make for an easier to read history.

  • catastrophicblues@lemmy.ca
    link
    fedilink
    arrow-up
    0
    ·
    10 months ago

    Oh god I feel so called out. I wish I paid more attention to my commit messages but I’m usually too busy fixing the directory structure and refactoring. Sigh.

    • brlemworld@lemmy.world
      link
      fedilink
      arrow-up
      1
      ·
      10 months ago

      My company collapses into a single commit at merge so idgaf what the commit message is anymore. Though I would prefer not collapsing them.