用途:在 Git 仓库中保护敏感内容(如绩效评估、凭据配置、私有文档、客户数据),同时保持版本控制,并让本地读取保持无缝明文。
主要能力:使用 git-crypt 做透明加密,使用 age 生成带版本的加密快照用于恢复;交互式引导选择加密目标(文件夹路径、glob 模式或多个目标)、快照策略与密钥备份位置;在目标目录写入 .gitattributes;导出并备份 git-crypt 密钥;为快照生成 age 密钥;在加密基线处创建 git 标签;更新 CLAUDE.md 记录加密说明。
使用方式:需先安装 git-crypt(brew install brew install git-crypt)与 age(brew install age),并有一个已初始化的 Git 仓库。调用后按步骤执行:选择加密目标、决定是否启用快照、指定密钥备份位置、检查依赖、初始化 git-crypt、写入 .gitattributes、生成 age 密钥、备份密钥、处理已提交的明文文件、创建初始快照与基线标签、更新 CLAUDE.md。恢复时可用 age -d -i ~/.age/<repo>-snapshots.key <snapshot>.tar.age | tar xf - 解密快照,用 git-crypt unlock 在新克隆上解锁,用 git-crypt status <target>/ 验证加密状态。
适用场景:需要将敏感目录纳入版本控制但不在远端明文暴露的仓库;含多个加密目录的 monorepo;已有 CI 的仓库(需注意 CI 无密钥无法读取加密文件)。
限制:不管理环境变量或 CI 中的密钥(应使用密钥管理器);不加密文件内部的单个值(应使用 sops);不提供访问控制(任何持有 git-crypt 密钥的人都能解密全部内容);不能替代 API 密钥/令牌的凭据管理。已提交的明文文件在历史中仍保留明文,清理历史需用 git filter-repo 且具破坏性。加密差异无实际意义,大二进制文件回滚建议依赖快照。