Git remote helper for P2P remotes — no server, just peers.
Uses gip-remote for the underlying Git-in-Pear database.
Install the git remote helper globally:
npm i -g git-remote-gipThis installs git-remote-gip which git will automatically use when accessing git+pear:// remotes.
gip new my-repogit remote add origin git+pear://<key>/my-repoWorks like any git remote:
git push origin main
git fetch origin
git clone git+pear://<key>/my-repoThe transport provides git-like progress output during push and fetch operations:
- Enumerating objects: Counts objects being prepared for transfer
- Writing objects: Shows percentage complete, object count, data size, and transfer rate
- Receiving objects: Similar progress for fetch/clone operations
Example push output:
Connecting... Connected! Found 2 peers
✔ Enumerating objects: 42, done.
✔ Writing objects: 100% (42/42), 1.6 MiB | 245.3 KiB/s, done.
Progress is written to stderr to avoid interfering with git protocol communication on stdout.
Link the remote helper so git can find it:
sudo ln -s $(pwd)/remote.js /usr/local/bin/git-remote-gipGit automatically looks for git-remote-<protocol> when accessing a remote.
- Multi-writer
- Access management
- Deduplication — objects are not pushed if they already exist on the remote
- In-memory git packing via rebuild-git