最近找到一篇文章
https://gist.github.com/873637
文章提供一个透明加密方法,即working directory 是解密的,但repositories是加密的.
就是在这两者之间加了一层filter.
加密解密通过本地调用openssl来进行加密解密,由于是在commit和diff时,自动进行,所以在操作上与一般的git操作无区别.
加密方式为AES-256 ECB
想到一些使用的场合:
1. 信不过github, bitbucket或者自建的私有仓库. 对代码安全有极大的要求.
2. 利用免费公开仓库(github, google code)托管私密程序.
关于第二点,我在github上试过,确实能实现,虽然文件名还是能看见,但是内容是加密过.
github的免费仓库是支持多成员的,对于想协作开发,又不想公开代码,同时又想减低成本的团队比较适合.
缺点:
[未验证]由于commit时已经是加密,可能做不到增量存储的,所以reop体积可能比较大.
[未验证]恢复成未加密状态比较麻烦(通过一些脚本来全部checkout,全部重新commit应该可行)