r1cka 2 days ago

I think people worry too much about branch names. Feature branches are usually ephemeral. Prefix your branch with your personal identifier so I know who is primary on it and worry more about the commit message which will live on indefinitely.

  • morkalork 2 days ago

    Yes, please just name the branch after the ticket/issue number so we can all get the context for it and call it a day

    • ytreister 12 hours ago

      That is what gibr does, it helps you do this with ease

    • jasonjmcghee 2 days ago

      This. Linear has the one click or shortcut to grab the generated branch name based on the ticket.

      With GitHub setup properly, on PR open, it auto comments the link to the ticket and links to the pr in the ticket.

      • dewey 2 days ago

        This is probably my favorite Linear feature.

        1) Cmd + shift + . -> Copy branch name

        2) Build feature on that branch name

        3) Build / Merge on Github and Linear closes the issue

    • wara23arish 2 days ago

      I hate issue numbers for branch names. ISSUE-9482 doesn’t really provide much.

      Ticket link should always be included in PR description.

      But branch names should be descriptive like terraform_dev_create_instance

      etc

      • jjgreen 2 days ago

        I've worked in a couple of places with <issue ID>-<something descriptive> conventions, moderately useful

        • krferriter 2 days ago

          Yes, `issue-10-add-feature-X` style is best.

          • bavent 2 days ago

            I have a little script that does this automatically - lists out Jira tickets assigned to me, then when I select one, creates a branch with the ticket number and the title, subbing hyphens for spaces and truncating if needed. It’s handy for when I want to list branches, I can filter on keywords I remember from the ticket name.

        • johntash 2 days ago

          That's been my preference at most places I've worked. issue id so the branch gets linked to jira or whatever and a short description to find the branch later if needed.

      • 6LLvveMx2koXfwn 2 days ago

        we do:

          [feature/bug]/ISSUE-NUMBER-summary-of-issue
        
        e.g.:

          bug/psi-456-broken-args-parsing
        • darkwater 2 days ago

          More or less the same here, but we (I?) prefix it with the username as well, so when pulling branches you know who created it.

          • dewey 2 days ago

            A nice benefit of prefixing by your-name/issue-1234-some-description is that many git clients will show it in a folder structure that way and it's easy to differentiate yours from other branches.

          • celticninja 2 days ago

            But the PR and git blame can tell you this so I would never look at the Branch name to find out this information

            • darkwater 2 days ago

              For me is useful when I run 'git fetch' from the command line. I don't use any graphical git client

        • ytreister 12 hours ago

          gibr makes it super easy to do exactly this!

      • ytreister 12 hours ago

        gibr makes it easy to do this and in a consistent manner

  • alkonaut 2 days ago

    having feature/username/id-desc is good though. Because at least you can identify why the branch is there. That they are ephemeral doesn't mean that people actually clean them up...

    • ytreister 12 hours ago

      Exactly, people tend to leave messes. It makes it much easier to know what the branch was for and have more piece of mind when you want to delete it.

    • delusional 2 days ago

      Either it has commits I care about or it doesn't. Either way, I'm not going to consult the branch name.

      If it has commits I care about, then it stays. If it doesn't, It goes. I'm only deleting on the server afterall, people can just push it back.

  • loevborg 2 days ago

    Correct, I use uuids as branch names, to the chagrin of my teammates

    • brettgriffin 2 days ago

      This would infuriate me. You have to index that guid to something yourself. Why wouldn't you at least give yourself some help (your name, issue number, type of change, area of project, etc). Why make your job harder than it needs to be?

    • ytreister 12 hours ago

      Why would you do this!!!!!

  • aizk 2 days ago

    Great point

  • focom 2 days ago

    Commit message should be ephemeral too. Squashing after a PR should be the default. Only at that moment does the PR/Commit message matter.

    • bavent 2 days ago

      Hard disagree here. GitHub does encourage this sort of thing, but even there for my PRs to be easily reviewable, I like to keep my commits organized and with good messages explaining things. That way the reviewer can walk the commits, and see why each thing was thing was done.

      I also like it for myself, when I’m going over my own PRs before asking for a review - I will often amend commits to ensure the work is broken down correctly, each thing that should go together, does.

      In a way, stacked PRs are just a higher-level abstraction of this too - same idea, keep work that goes together in the same place.

      • freedomben 2 days ago

        Fully agree with you here. Blunt squashing is a bandaid to the problem of lazy commits. Commits should IMHO be specific and atomic. Like fixing one bug or implementing one feature. Obviously there are cases where this ideal isn't practical, but the answer is still not squash everything, it's to think for 10 more seconds about the commit and do your best.

        • bavent 2 days ago

          Yeah, I think over use of GitHub, which seems to encourage squash-merging, has led to this where a lot of people I’ve seen treat a PR as essentially one commit - because it ends up being one in the end.

          If you keep your PRs small I guess the end result is the same, but even then I like things in individual commits for ease of review.

          • danielbln 2 days ago

            I want to see detailed atomic commits during PR review, and once it's reviewed I'm happy to have it squashed. If the PR produces so much code/changes that main branch needs detailed atomic commits for future reference, then the PR was too large to begin with, imo.

            • bavent 2 days ago

              I do agree that this is a good compromise. For me, if I do a git blame and eventually can find the PR that led to change, if it has nice clean commits, that’s good enough.

          • focom a day ago

            > If you keep your PRs small

            Its not a if. it's necessary for the sake of people reviewing your code. Unless you work alone on your pet project and always push to master you never work alone.

            • bavent a day ago

              Right, small PRs are great. And they are even better with a nice commit history for me to follow. One does not exclude the other.

      • focom a day ago

        > In a way, stacked PRs are just a higher-level abstraction of this too - same idea, keep work that goes together in the same place.

        You downvote me but you just agreed with me. When was the last time you read individual commits of a PR? If your PR need to keep the history of the commits that means that you should split your PR into smaller one.

        • bavent a day ago

          Calm down dude, I can’t even downvote people.

          The last time I read individual commits of a PR? Maybe two hours ago. Before that, maybe five hours ago. Not everyone works like you do. Some people like clean commits. As I said, it’s very helpful when reviewing a PR, for me. I never said it was helpful for you.

    • xorcist 19 hours ago

      Did you mean before the PR? Why would anyone have a review system if you change the code after review?

      Hopefully the commits are already squashed and rebased before review to value reviewers' time.

dcre 2 days ago

Sounds similar to a short script I use to generate branch names with jj, which has the advantage that you don’t have to name a branch until after you’ve already written the code, so the LLM can name it based on the contents of the diff.

https://crespo.business/posts/overeng-pr-create-jj/

teiferer 2 days ago

I was so afraid that this is another "look I built sth that uses AI!" post, slopped together in an afternoon. I'm glad it's not, such a relief!

This reaction tells me a lot about the state of our industry. (Or just the state of my mind.)

  • ytreister 13 hours ago

    I used some AI to help me, but I put in a lot of thought to how it is created. I have plans to add many more useful features over time.

celticninja 2 days ago

I think branch names are quite unimportant in development and often don't worry about them being too descriptive.

In my org it is common to use the JIRA ticket number in there somewhere but other than that I think you should leave it up to devs. I can't think of a reason why I would need to know the branch name.

My favorite branch name I created was for a JIRA ticket with the number 2468.

This became ab-2468-who-do-we-appreciate

Detailed branch naming conventions are just another piece of useless documentation for devs. And if you are using the branch name to tell you what is going on the you are misunderstanding the review process.

  • ytreister 13 hours ago

    When you use Gitlab and squash your merge request, a new merge commit with the name of the branch is created, so I found it very helpful in that situation to know the name of the branch.

ytreister 13 hours ago

Hey everyone — I’m actually the author of gibr!

I just wanted to say thanks for all the comments and discussion. It’s been amazing (and honestly a bit surprising) to see so many developers checking it out.

The idea for gibr came from the frustration I had when I was forced to use Jira for issue tracking and GitLab for our repos. At the time, I built an internal tool called jig that integrated the two. With a single command, it could create a branch, push it, transition the Jira issue to In Progress, and open a merge request with everything pre-filled — assignee, reviewers, description, and so on. It became really popular at my company.

I decided to take that idea further and rebuild it as an open-source tool with a plugin architecture, so it could work with any issue tracker or Git provider, not just Jira and GitLab.

If anyone has feedback or ideas for new integrations, I’d love to hear them — some great suggestions have already come in that might make it into the next release.

Thanks again for the support — this community is awesome.

spencera 2 days ago

I think in 2025 "intelligently creating" kind of implies the use of AI but (thankfully) this is just doing a string format based on an issue title.

  • ytreister 12 hours ago

    I don't know why I did not think of that, but I can see how people would assume this nowadays!

roflchoppa 2 days ago

a format that as worked well for me (and that I've brought with me to other teams)

``` issues/{username}/{issue-number}-{description} ```

The username prefix is helpful, for both organization, and locating branches.

paradox460 a day ago

I rarely make named branches these days. Just use JJ git push -c, which creates a branch name based off the change I'm pushing

  • ytreister 12 hours ago

    Interesting. That seems to work if your work is not associated with an issue tracker. Many use issue trackers and like to link each branch or PR/MR to an issue tracker.

    • paradox460 5 hours ago

      We've done the same thing, but we only link JIRA tickets to PRs, so when I open a PR, I stick it in the PR description body.

davelee 2 days ago

I use the `%f` format option. I have a `bn` alias ("branch name"):

git show --no-patch --format=%f [<commit>]

  • ytreister 12 hours ago

    Interesting idea, however, don't you first need to create the branch before you start committing commits?

pat_erichsen 2 days ago

Neat! Linear does this really well with a few different configurable patterns.

  • ytreister 12 hours ago

    I am not sure how configurable the button in Linear is. Also, gibr allows a user to not need to even leave their terminal to list their issues and create/push the branch. I also hope to have more features like creating a PR/MR and linking to a git repo.

    Also many people do not have the luxury of using Linear, many companies force developers to use Jira...

compilethread 2 days ago

Simple and clear branch names make teamwork so much easier.

  • ytreister 13 hours ago

    Yes, I agree, and that is why I created this tool