git-crypt

git-crypt

前言

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

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

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

安装

1
sudo dnf install git-crypt -y

使用

初始化:

1
2
cd repo
git-crypt init

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

1
2
3
4
5
6
7
8
9
10
*.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-20260512224242757

同时还可以本地加密

1
2
git-crypt lock
git-crypt unlock

image-20260512223147702

从 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-20260512223801735


git-crypt
https://liancccc.github.io/2026/05/12/技术/其他/git-crypt/
作者
守心
发布于
2026年5月12日
许可协议