6 releases
Uses old Rust 2015
0.1.5 | Aug 1, 2017 |
---|---|
0.1.4 | Aug 1, 2017 |
0.1.2 | Jul 31, 2017 |
#1336 in Cryptography
41KB
217 lines
git-mix
git-mix is inspired by git-crypt but implemented by rust.
How it works
Based on Git Attributes. Using the “clean” and “smudge” filters , we can can set a filter for particular paths before they’re checked out and staged as the following:
How to install
Thanks to cargo :)
cargo install git-mix
Use
initialization
- edit the .gitattributes to set the path you want to mix as the following:
private/* filter=git-mix
.gitattributes !filter
- run
git-mix gen
to generate the config for defining the filtergit-mix
[filter "git-mix"]
clean = git-mix encrypt --key BiqdSyKwmnIFDKg1LzXIg5eEM3RWbdUb
smudge = git-mix decrypt --key BiqdSyKwmnIFDKg1LzXIg5eEM3RWbdUb
-
append template to .git/config
-
remember the key, or you can reset the key which is required 32 bytes by
git-mix genkey
or yourself -
commit the private data and push remote to checkout the mixed data:)
clone
- git clone -n giturl
- run
git-mix gen --key <key>
to generate the filter template
❯ git-mix gen --key BiqdSyKwmnIFDKg1LzXIg5eEM3RWbdUb 127ms
[filter "git-mix"]
clean = git-mix encrypt --key BiqdSyKwmnIFDKg1LzXIg5eEM3RWbdUb
smudge = git-mix decrypt --key BiqdSyKwmnIFDKg1LzXIg5eEM3RWbdUb
- append the template to .git/config
- git reset --hard HEAD
- check the private data :)
Contributing
To contribute to git-mix, clone this repo locally and commit your code on a separate branch.
PS: PR Welcome 🚀 🚀 🚀 🚀
Author
GitHub @detailyang
License
git-mix is licensed under the MIT license.
Dependencies
~6MB
~82K SLoC