• August27th@lemmy.ca
    link
    fedilink
    arrow-up
    2
    ·
    17 hours ago

    Oh my god, I’ve thinking about why git doesn’t operate this way for ages, but it already has for a decade. This is going to change my life. Thank you for posting this.

  • nous@programming.dev
    link
    fedilink
    English
    arrow-up
    4
    ·
    23 hours ago

    Worktrees are great. Although I use them is a different way. I only use them to allow me to rebase or cherry pick onto branches, which require a working tree to do, without ever leaving my main branch. Basically I use them as more powerful branches then full worktrees.

    Instead I just do all my work in the main branch/worktrees. When I have something I want to push to a pr I commit just that change to main. Then create a branch and work tree (I store them in .git/wt/<branch name>). Then cherry pick the commits onto that branch and push that creating a pr from it. Then go back to working on main again on top of the changes I have done. Once the pr gets merged I do a pull --rebase which drops the commits from main.

    This means I don’t need to switch directories ever and let’s me work on a feature, then do a refactor (or minor bug fix), commit and push the refactor in isolation while continuing to work on the feature on top of the refactor.