You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Go to file
Josh Rabinowitz 01cc4430c7
Fix testing on freebsd (#1069)
7 days ago
.ci Bump alpine from 3.17.2 to 3.18.2 in /.ci/docker-ci/alpine (#1005) 8 months ago
.github Fix testing on freebsd (#1069) 7 days ago
RFC Add note about writing tests. Fix typo. (#471) 5 years ago
docs Bump jekyll from 4.3.2 to 4.3.3 in /docs (#1060) 2 months ago
man DOCS: Fix typo (#966) 1 year ago
src fix for #918, use OSX stat, not brew's gnu version(#920) 2 years ago
tests bug fix for 'reveal' in a subdir (#903) (#905) 2 years ago
utils Spelling (#907) 2 years ago
vendor upgrate our bats-core to v1.6.0 (#803) 2 years ago
.editorconfig [WIP] New CI 3 years ago
.gitattributes Ignores `*.1` and `*.7` files, closes #690 (#691) 3 years ago
.gitignore Closes #420 3 years ago disable arch tests for now (#928) 1 year ago Rename `killperson` to `removeperson` (#685) 3 years ago added 8 years ago
Makefile Fix release dry run 2 years ago fixes header nav for installation and plugins; updates README installation URL (#989) 10 months ago
git-secret.gif Add animated GIF preview of the asciinema recording and link on (#560) 4 years ago


test release-ci Homebrew Supporters


What is git-secret?

git-secret is a bash tool which stores private data inside a git repo. git-secret encrypts files with permitted users' public keys, allowing users you trust to access encrypted data using pgp and their secret keys.

With git-secret, changes to access rights are simplified, and private-public key issues are handled for you.

When someone's permission is revoked, secrets do not need to be changed with git-secret - just remove their key from the repo's keyring using git secret removeperson, re-encrypt the files, and they won't be able to decrypt secrets anymore. If you think the user might have copied the secrets or keys when they had access, then you should also change the secrets.


git-secret terminal preview


git-secret supports brew, just type: brew install git-secret

It also supports apt and yum. You can also use make if you want to. See the installation section for the details.


git-secret relies on several external packages:

  • bash since 3.2.57 (it is hard to tell the correct patch release)
  • gawk since 4.0.2
  • git since
  • gpg since gnupg 1.4 to gnupg 2.X
  • sha256sum since 8.21 (on freebsd and MacOS shasum is used instead)


Do you want to help the project? Find an issue and send a PR. It is more than welcomed! See on how to do that.


In order to encrypt (git-secret hide -m) files only when modified, the path mappings file tracks sha256sum checksums of the files added (git-secret add) to git-secret's path mappings filesystem database. Although, the chances of encountering a sha collision are low, it is recommend that you pad files with random data for greater security. Or avoid using the -m option altogether. If your secret file holds more data than just a single password these precautions should not be necessary, but could be followed for greater security.

If you found any security related issues, please do not disclose it in public. Send an email to


git-secret uses semver. See


Thanks to all the people and groups who package git-secret for easier install on particular OSes and distributions!

Packaging status

Here are some packagings of git-secret that we're aware of:

Such packages are considered 'downstream' because the git-secret code 'flows' from the git-secret repository to the various rpm/deb/dpkg/etc packages that are created for specific OSes and distributions.

We have also added notes specifically for packagers in


Support this project by becoming a sponsor. Your logo will show up here with a link to your website. [Become a sponsor]



Thanks to all our backers!



This project exists thanks to all the people who contribute. [Contribute].


MIT. See for details.


Special thanks to Elio Qoshi from ura for the awesome logo.