Home

git-age @main - refs - log - search -
https://git.jolheiser.com/git-age.git
git-crypt, but with age
README.md - raw
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# 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))