# git-age This is a Go port of [git-agecrypt](https://github.com/vlaci/git-agecrypt) with some slight modifications. Echoed from the original project: > ## Why should I use this? > > Short answer: you probably shouldn't. Before considering this approach, take a look at [SOPS](https://github.com/mozilla/sops) and [Hashicorp Vault](https://www.vaultproject.io/) if they are better suited for the problem at hand. **They have a clear security advantage** over `git-age`. > > The one use-case where it makes sense to use `git-age` instead is when you want to keep some files secret on a (potentially public) git remote, but you need to have the plaintext in the local working tree because you cannot hook into the above tools for your workflow. **Being lazy is not an excuse to use this software.** ## Adding git-age to a new repository 1. Install `git-age` in your `PATH` 2. `git age init` 3. Add some identities - `git age ident key.txt` - `git age ident ssh` 4. Set up your config ([example](.git-age.yaml)) 5. Add your secrets to `.gitattributes` `secret.txt diff=git-age filter=git-age` 6. Use git like normal. ## Decrypting an existing repository Similar to initial install, adding identities prior to `init` so that any encrypted files are decrypted during initialization. 1. Install `git-age` in your `PATH` 2. Clone the repository 3. Add some identities - `git age ident key.txt` - `git age ident ssh` 4. `git age init` 5. Use git like normal ## License This software was written based off of [git-agecrypt](https://github.com/vlaci/git-agecrypt/tree/945b80556d8848f6e85a8cc0053f9020bdc8b359). [MPL-2.0](LICENSE) ([Original](https://github.com/vlaci/git-agecrypt/blob/945b80556d8848f6e85a8cc0053f9020bdc8b359/LICENSE))