Keyboard shortcuts

Press or to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Initializing cottage

Scenarios for initializing cottage in a new or existing git repository:

  1. I want to create a fresh new git repo and keep secrets in it
  2. I want to add cottage to an existing git repo
  3. I want to undo ctg init

I want to create a fresh new git repo and keep secrets in it

To start a fresh new repo with secrets, run:

cd /tmp
mkdir myproject
cd myproject
git init

ctg init
Initialized empty Git repository in /tmp/tmp....XXX.../.git/

To confirm that the repository is properly initialized, run:

git status --short
?? .cottage/
?? .gitattributes
?? .gitignore

Check the contents in the .cottage directory:

tree .cottage
.cottage
├── identity
└── recipients
    └── ...XXX...

2 directories, 2 files

Check the contents of .gitignore and .gitattributes:

cat .gitignore
/.cottage/identity
cat .gitattributes
*.cott.age binary export-ignore filter=cottage-encrypted -diff

I want to add cottage to an existing git repo

To add cottage to an existing git repository (e.g. sayanarijit/jf), run:

git clone [email protected]:sayanarijit/jf.git
cd jf

ctg init

To confirm that the repository is properly initialized, run:

git status --short
M .gitignore
?? .cottage/
?? .gitattributes
tree .cottage
.cottage
├── identity
└── recipients
    └── ...XXX...

To confirm that .gitignore and .gitattributes are properly updated, run:

grep .cottage/identity .gitignore
/.cottage/identity
grep .cott.age .gitattributes
*.cott.age binary export-ignore filter=cottage-encrypted -diff

I want to undo ctg init

For some reason, if you want to undo the ctg init command, you can run:

ctg clean --all

git status --short
# no output