Manage multiple independent clones of a git repository. Similar to ClearCase Views but for Git.
Work on multiple features, branches, or experiments simultaneously without branch switching overhead. Each "space" is an independent clone of your repository.
- Multiple independent clones per repository
- Fast switching between workspaces
- Inactive spaces can be put to "sleep"
- Add more clones on demand
- Direct editor integration
pip install gitspacesOr from source:
git clone https://github.com/davfive/gitspaces.git
cd gitspaces
pip install -e .Configure project paths and editor:
gitspaces setupClone a repository with multiple workspaces:
gitspaces clone https://github.com/user/repo.git -n 3Creates:
projects/repo/
├── __GITSPACES_PROJECT__
├── main/ # active workspace
└── .zzz/ # sleeping workspaces
├── zzz-0/
├── zzz-1/
└── zzz-2/
Basic operations:
gitspaces switch # switch workspace
gitspaces sleep # sleep active, wake another
gitspaces rename old new # rename workspace
gitspaces extend -n 2 # add 2 more clones
gitspaces code # open in editorgitspaces setup # configure project paths, editor
gitspaces clone <url> [-n N] [-d DIR] # clone repo with N workspaces
gitspaces switch [SPACE] # switch workspace (interactive if no arg)
gitspaces sleep [SPACE] # sleep workspace, optionally wake another
gitspaces rename OLD NEW # rename workspace
gitspaces extend -n N [SOURCE] # add N more clones
gitspaces code [SPACE] # open workspace in editor
gitspaces config [KEY] [VALUE] # view/set configurationDefault location: ~/.gitspaces/config.yaml
project_paths:
- /home/user/projects
default_editor: codeSee CONTRIBUTING.md.
Maintainers: see README.DEPLOYMENT.md for PyPI deployment.
MIT - see LICENSE.