top | item 34445165

(no title)

Ankhers | 3 years ago

If this is just for being able to easily switch branches, have you considered using git worktrees? Essentially you have have multiple branches checked out into different directories at the same time. The key point though is that all git refs are still maintained in a single place so you are not actually having full clones for each worktree that you have.

I personally use Emacs and magit which has great support for worktrees. I do not know if the VSCode git integration supports it.

discuss

order

CompuIves|3 years ago

Ah right, the main advantage I have here is that the dev server also stays running when I go to another branch (since it's a different VM). So I can work on one thing, share it with the team and in the meantime continue on another branch. They can see the devserver / running code, while I am working on something else.

It's especially useful for things like migrations or dependency management. In one branch I could work on something that has some database migrations, and then I can still switch to other branches without having to roll back the migrations.

I didn't know about git worktrees though! I'm going to read up on this.

albuic|3 years ago

> In one branch I could work on something that has some database migrations, and then I can still switch to other branches without having to roll back the migrations.

This is a good use case of git worktree.

> I didn't know about git worktrees though! I'm going to read up on this.

Indeed, you will like it.

The only limitation is that you cannot checkout the same branch in multiple worktree.

faitswulff|3 years ago

> In one branch I could work on something that has some database migrations, and then I can still switch to other branches without having to roll back the migrations.

I would love to have this workflow locally.

slaymaker1907|3 years ago

I use it with VS Code since the project I work on takes 5-10 minutes to build if a major header is modified. It shows up as a separate directory, but VS Code will still realize that the directory is a git worktree.

The only thing kind of clunky is that you have to keep track of which branch is open in which directory since you can't checkout the same branch in two different directories.

albuic|3 years ago

> The only thing kind of clunky is that you have to keep track of which branch is open in which directory since you can't checkout the same branch in two different directories.

"git worktree list" is your friend ;-)