git-annex 允许采用 git 管理文件而无需将文件内容检入 git。看起来似乎很矛盾,它适用于处理那些 git 当前难以处理的大型文件,无论其限制是来自于内存、时间还是磁盘空间。

git-annex 面向那些喜欢在命令行下使用 git 的用户。而对于其他用户,可以使用 git-annex assistant,它将 git-annex 放到一个易用的文件夹同步器中。

用法

初始化仓库

~$ mkdir ~/annex
~$ cd ~/annex
~/annex $ git init
~/annex $ git annex init

版本管理

~/annex 目录中存些文件

添加新内容索引到仓库

~/annex $ git annex add .

提交变更

~/annex $ git commit -a -m added

检出之前的提交

要找回删除的文件,可以通过检出存在已删除文件的旧分支找回删除的文件。

查看 git log

~/annex $ git log
git log
commit c2641f27aa5b36f4f34345d4c71970c007b3d2a1
Author: Herald Yu <yuhr123@gmail.com>
Date:   Fri May 11 13:42:51 2018 +0800

    del

commit 80151bbe60d8bb11b4b27e128341a7f17fcd6c36
Author: Herald Yu <yuhr123@gmail.com>
Date:   Fri May 11 13:39:54 2018 +0800

    added

切换分支

~/annex $ git checkout 80151bbe60d8bb11b4b27e128341a7f17fcd6c36

找回已删除的文件,再切回 master 分支即可:

~/annex $ git checkout master

参考