https://github.com/sameer/git-lfs-ipfs
Use IPFS as a git-lfs endpoint
https://github.com/sameer/git-lfs-ipfs
actix-web git git-lfs ipfs lfs rust
Last synced: 7 months ago
JSON representation
Use IPFS as a git-lfs endpoint
- Host: GitHub
- URL: https://github.com/sameer/git-lfs-ipfs
- Owner: sameer
- License: other
- Created: 2019-01-06T01:22:24.000Z (almost 7 years ago)
- Default Branch: master
- Last Pushed: 2023-03-28T04:32:25.000Z (over 2 years ago)
- Last Synced: 2025-04-11T00:49:56.878Z (7 months ago)
- Topics: actix-web, git, git-lfs, ipfs, lfs, rust
- Language: Rust
- Homepage:
- Size: 232 KB
- Stars: 56
- Watchers: 3
- Forks: 5
- Open Issues: 9
-
Metadata Files:
- Readme: README.md
- Funding: .github/FUNDING.yml
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# git-lfs-ipfs
A [git-lfs](https://git-lfs.github.com/) custom transfer & extension that makes it easy to store large files with IPFS.
[](https://github.com/sameer/git-lfs-ipfs/actions/workflows/rust.yml)
[](https://codecov.io/gh/sameer/git-lfs-ipfs)
## Installation
### Building
```bash
git clone https://github.com/sameer/git-lfs-ipfs
cd git-lfs-ipfs/git-lfs-ipfs-cli
cargo build --release
```
### Packages
None yet!
### Configuration
If you haven't already, do `git lfs install` to set up Git LFS on your computer.
Add the custom transfer and extensions for IPFS to your `~/.gitconfig`:
```
[lfs]
standalonetransferagent = ipfs
[lfs "customtransfer.ipfs"]
path = git-lfs-ipfs-cli
args = transfer
concurrent = true
direction = both
[lfs "extension.ipfs"]
clean = git-lfs-ipfs-cli clean %f
smudge = git-lfs-ipfs-cli smudge %f
priority = 0
```
**Note that git-lfs-ipfs will be enabled by default for all future LFS usage if you add these lines to your configuration. Make sure to remove them if you do not wish to do so.**
## Demo
A demo repository is available to test out your installation: [sameer/git-lfs-ipfs-demo](https://github.com/sameer/git-lfs-ipfs-demo). Simply clone it once you configure git-lfs-ipfs and verify that no errors occur.
## Usage
Use git LFS like you usually do and all subsequent files added in LFS will be added to IPFS.
Files already on S3, etc. cannot be read unless you remove the `[lfs "customtransfer.ipfs"]` entry in your `~/.gitconfig`; the custom transfer overrides your default transfer so that a file is never uploaded to a remote server.