Skip to content

detailyang/git-mix

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

23 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

git-mix

Build Status Release

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:

clean smudge

How to install

Thanks to cargo :)

cargo install git-mix

Use

initialization

  1. edit the .gitattributes to set the path you want to mix as the following:
private/* filter=git-mix
.gitattributes !filter
  1. run git-mix gen to generate the config for defining the filter git-mix
[filter "git-mix"]
    clean = git-mix encrypt --key BiqdSyKwmnIFDKg1LzXIg5eEM3RWbdUb
    smudge = git-mix decrypt --key BiqdSyKwmnIFDKg1LzXIg5eEM3RWbdUb
  1. append template to .git/config

  2. remember the key, or you can reset the key which is required 32 bytes by git-mix genkey or yourself

  3. commit the private data and push remote to checkout the mixed data:)

clone

  1. git clone -n giturl
  2. 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
  1. append the template to .git/config
  2. git reset --hard HEAD
  3. 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.

About

Mix the git data with AES-256-ECB mode

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages