Skip to content
date
2026-05-12 23:16:34

git-crypt

前言

之前使用 Obsidan 进行笔记备份,当时开了一年的同步,然后前些天发现同步的时候一直提示密码错误,发现是到期了。

目前在使用 github private repo + vscode + typora ,但是有一个问题就是感觉还是有点不安全,所有找到了 git-crypt。

项目地址:https://github.com/AGWA/git-crypt

安装

sudo dnf install git-crypt -y

使用

初始化:

cd repo
git-crypt init

配置加密规则,仓库根目录创建 .gitattributes 文件:

*.md         filter=git-crypt diff=git-crypt
*.png        filter=git-crypt diff=git-crypt
*.jpg        filter=git-crypt diff=git-crypt
*.excalidraw filter=git-crypt diff=git-crypt
*.txt        filter=git-crypt diff=git-crypt
*.pdf        filter=git-crypt diff=git-crypt
*.json       filter=git-crypt diff=git-crypt

.gitattributes !filter !diff
README.md !filter !diff

使用 GPG 模式

1
2
3
gpg -K | grep "uid"

git-crypt add-gpg-user llianpo@llp.local

image-20260512221340193

会创建一个 .git-crypt/keys/default/0/....gpg 这个不能忽略,必须要推送到 github ,加密解密就是依据这个的。

然后推送测试,推送的时候会自动的加密:

1
2
3
4
git rm -r --cached .
git add .
git commit -m "Re-apply git-crypt"
git push

看一下 Github 已经看到加密成功了,当然 Github 以前的 commit 还是明文的,只影响了本次的 commit。

image-20260512223147702

同时还可以本地加密

git-crypt lock
git-crypt unlock

image-20260512223801735

从 Github 恢复,使用 GPG 时,只需要在电脑导入 GPG,然后直接 git-crypt unlock 就可以了。

1
2
3
4
git clone git@github.com:liancccc/my-note.git
cd my-note/
git-crypt unlock
tail coding/git/git-crypt.md

image-20260512224242757