Skip to content

ozankasikci/rust-git-worktree

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

rsworktree

Codecov

rsworktree is a Rust CLI for managing Git worktrees in a single repo-local directory (.rsworktree). It provides a focused, ergonomic workflow for creating, jumping into, listing, and removing worktrees without leaving the terminal.

Table of Contents

Interactive mode

  • Open a terminal UI for browsing worktrees, focusing actions, and inspecting details without memorizing subcommands.
  • Launch it with the interactive command: rsworktree interactive (shortcut: rsworktree i).
  • Available actions include opening worktrees, removing them, creating PRs, and merging PRs without leaving the TUI.
  • The merge flow lets you decide whether to keep the local branch, delete the remote branch, and clean up the worktree before exiting.
  • Interactive mode screenshot

CLI commands

rsworktree create

  • Create a new worktree under .rsworktree/<name>. Also changes directory to the worktree.
  • Demo: Create demo
  • Options:
    • --base <branch> — branch from <branch> instead of the current git branch.

rsworktree cd

  • Spawn an interactive shell rooted in the named worktree.
  • Demo: CD demo
  • Options:
    • --print — write the worktree path to stdout without spawning a shell.

rsworktree ls

  • List all worktrees tracked under .rsworktree, showing nested worktree paths.
  • Demo: List demo
  • Options:
    • (none)

rsworktree rm

  • Remove the named worktree.
  • Demo: Remove demo
  • Options:
    • --force — force removal, mirroring git worktree remove --force.

rsworktree pr-github

  • Push the worktree branch and invoke gh pr create for the current or named worktree.
  • Demo: PR demo
  • Requires the GitHub CLI (gh) to be installed and on your PATH.
  • Options:
    • <name> — optional explicit worktree to operate on; defaults to the current directory.
    • --remove — delete the remote branch after a successful merge.
    • --no-push — skip pushing the branch before creating the PR.
    • --draft — open the PR in draft mode.
    • --fill — let gh pr create auto-populate PR metadata.
    • --web — open the PR creation flow in a browser instead of filling via CLI.
    • --reviewer <login> — add one or more reviewers by GitHub login.
    • -- <extra gh args> — pass additional arguments through to gh pr create.

rsworktree merge-pr-github

  • Merge the open GitHub pull request for the current or named worktree using gh pr merge.
  • Demo: Merge PR demo
  • Requires the GitHub CLI (gh) to be installed and on your PATH.
  • Options:
    • <name> — optional explicit worktree to operate on; defaults to the current directory.

Installation

Install from crates.io with:

cargo install rsworktree

On macOS you can install via Homebrew:

brew tap ozankasikci/tap
brew install rsworktree

After the binary is on your PATH, run rsworktree --help to explore the available commands.

Environment

Set RSWORKTREE_SHELL to override the shell used by rsworktree cd (falls back to $SHELL or /bin/sh).

About

A cli application written in rust in order make working with git worktrees easier.

Topics

Resources

License

Stars

Watchers

Forks

Packages

No packages published