A git-worktree(1) manager.
A normal Git checkout looks like this:
my-repo/
.git/
README.md
...
Worktrees allow you to associate multiple checkouts with one .git directory,
like this:
my-repo/
.git/ # A bare repository
main/ # A checkout for the main branch
README.md
feature1/ # A checkout for work on a feature
README.md
...
This makes it a lot easier to keep a handful of branches 'in flight' at the same time, and it's often handy to be able to compare your work against a local checkout of the main branch without switching branches.
Unfortunately, the built-in git worktree commands don't make it very easy to
set up repositories with this layout. git-prole exists to paper over these
deficiencies.
Clone a repository into a worktree checkout with
git prole clone URL [DESTINATION].Convert an existing repository into a worktree checkout with
git prole convert.Add a new worktree with
git prole add.git prole add feature1will create afeature1directory next to the rest of your worktrees;git worktree add feature1, in contrast, will create afeature1subdirectory nested under the current worktree.Branches created with
git prole addwill start at and track the repository's main branch by default.git prole addwill copy untracked files to the new worktree by default, making it easy to start a new worktree with a warm build cache.git prole addcan run commands when a new worktree is created, so that you can warm up caches by running a command likedirenv allow.git prole addcan perform regex substitutions on branch names to compute a directory name, so that you can rungit prole add -b myname/team-1234-my-ticket-with-a-very-long-titleand get a directory name likemy-ticket.git prole addrespects the-c/--createoption (to matchgit switch);git worktree addonly allows-b(with no long-form option available).