DEV Community

Cover image for VS Code Git Worktrees
Alexis Zamanidis
Alexis Zamanidis

Posted on

VS Code Git Worktrees

VS Code Git Worktrees

A Wrapper for Git Worktree Operations that provides an interactive API so developers can have a better experience.

Links

Purpose of the extension

After creating a ZSH plugin that was responsible for wrapping up my daily git operations(zsh-git-fzf), I found myself very often switching between the terminal and my main Editor(VS Code). So I decided to create an extension for my main Editor that would help me avoid switching between them and keep everything in one tool.

Requirements

  • Git version: 2.34.1

Supported operations

  • git worktree add [new-branch] [remote-branch]

    Create a new worktree

    Behavior

    • If you do not select a remote branch(ESC), you will create a new worktree with the new branch you typed. This was made for convenience, instead of having git worktree add master master, you can just run git worktree add master.
  • git worktree list

    Display all worktrees and switch between them

  • git worktree remove [worktree-name]

    Remove a worktree

    Restrictions

    • You cannot delete the same Worktree as the one you are currently working on

Getting started

Steps:

  • Install Git Worktree VS Code extension
  • Open the palette: CTRL + SHIFT + P
  • Search for any available operations
    • Prefix: Git Worktree:

Features/Operations/Error

If you are not able to see the GIFs in the post, take a look at GitHub README and open each GIF in a new tab.

  • Worktree Add (Create)

worktree-add

  • Worktree List (Switch)

worktree-list

  • Worktree Remove

Worktree remove

  • Error

    If anything goes wrong a Popup will be shown at the bottom left of the screen

    If you see anything weird, please open an issue

error

Contribution

  • Reporting a bug
  • Improving this documentation
  • Writing tests
  • Sharing this project and recommending it to your friends
  • Giving a star on this repository

License

MIT © Alexis Zamanidis

Discussion (0)