Ответ 1
Они решают одну и ту же проблему.
Позвольте мне начать с pro/con, тогда я перейду в технические различия.
git -annex
Плюсы:
- Поддержка нескольких пультов, которые вы можете сохранить в двоичных файлах.
- Может использоваться без поддержки хостинг-провайдера (подробнее см. здесь).
Минусы:
- Поддержка Windows в бета-версии и долгое время
- Пользователям необходимо изучить отдельные команды для повседневной работы.
- не поддерживается github и bitbucket
git -lfs
Плюсы:
- Поддерживается github, bitbucket и gitlab
- Большинство поддерживаемых на всех os's
- Прост в использовании.
- автоматизированный на основе фильтров
Минусы:
- Требуется выполнение пользовательской серверной версии. Недостаточно простого ssh-пульта. Сервер ссылок находится в разработке https://github.com/git-lfs/lfs-test-server.
Технические
git -annex
git -annex работает, создавая символическую ссылку в вашем репо, которая будет совершена. Фактические данные сохраняются в отдельный бэкэнд (S3, rsync и MANY другие). Это написано в haskell. Поскольку он использует символические ссылки, пользователи Windows вынуждены использовать приложение совершенно по-другому, что делает кривую обучения выше.
git -lfs
Пишутся файлы указателя. A git -lfs api используется для записи BLOB в lfs. Из-за этого требуется специальный сервер LFS. Git lfs использует фильтры, поэтому вам нужно только настроить lfs один раз и снова, когда вы хотите указать, какие типы файлов вы хотите нажимать на lfs.