| Crates.io | git-prole |
| lib.rs | git-prole |
| version | 0.5.3 |
| created_at | 2024-10-12 20:42:49.613831+00 |
| updated_at | 2024-11-18 19:36:22.371851+00 |
| description | A git-worktree(1) manager |
| homepage | |
| repository | https://github.com/9999years/git-prole |
| max_upload_size | |
| id | 1406862 |
| size | 363,055 |
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 feature1 will create a feature1 directory next to the
rest of your worktrees; git worktree add feature1, in contrast, will
create a feature1 subdirectory nested under the current worktree.
Branches created with git prole add will start at and track the
repository's main branch by default.
git prole add will copy untracked files to the new worktree by default,
making it easy to start a new worktree with a warm build cache.
git prole add can run commands when a new worktree is created, so that
you can warm up caches by running a command like direnv allow.
git prole add can perform regex substitutions on branch names to compute
a directory name, so that you can run git prole add -b myname/team-1234-my-ticket-with-a-very-long-title and get a directory name
like my-ticket.
git prole add respects the -c/--create option (to match git switch); git worktree add only allows -b (with no long-form option
available).