Эффективное хранение двоичных файлов в репозитории git



Я хотел бы иметь репозиторий git, который состоит в основном из двоичных файлов.



Мне нужно отслеживать измененные, добавленные и удаленные файлы в хранилище, но я не хочу, чтобы git версировал содержимое самих файлов.



Другими словами, Мне просто нужно, чтобы git отслеживал изменения (журнал изменений), но не содержание.

Возможно ли это вообще с git?



Должен ли я использовать что-то другое для этого?

926   5  

5 ответов:

Git-это трекер контента, поэтому, если вы не хотите отслеживать контент, это звучит как неправильный инструмент для работы. Хотя я не совсем уверен, как вы будете отслеживать изменения в файлах, не отслеживая их содержимое.

Добыто из ответа@Tobu на этот связанный вопрос:

Чтобы версировать и распространять двоичные файлы, фактически не сохраняя их в git, попробуйте git-annex.

Если вы не хотите хранить бины, то вы можете использовать двоичный инструмент diff для файлов, а затем зафиксировать выходные данные в системе управления версиями. Любые записи журнала изменений текста могут быть затем введены в сообщение фиксации.

Может быть, я не понимаю вашего вопроса, но что делать, если вы храните в текстовом файле метку времени всех файлов? Затем вы можете сохранить в системе управления версиями только этот файл и позволить вашим VCS различать различные версии этого файла.

Но я не хочу, чтобы git версировал содержимое самих файлов.

Это именно то, что Git большое файловое хранилище (LFS) делает (по GitHub, апрель 2015).

Проект является git-lfs (видишь git-lfs.github.com) и тестируемый с сервером, поддерживающим его: lfs-test-сервер:
Метаданные можно хранить только в репозитории git, а большой файл-в другом месте.

https://cloud.githubusercontent.com/assets/1319791/7051226/c4570828-ddf4-11e4-87eb-8fc165e5ece4.gif

  • Большие файлы синхронизируются отдельно с настраиваемым сервером Git LFS по протоколу HTTPS,поэтому вы не ограничены в том, куда вы отправляете свой репозиторий Git.

  • Большие файлы синхронизируются с сервером только тогда, когда они извлечены, поэтому ваш локальный репозиторий не несет вес каждой версии каждого файла, когда он не нужен.

  • Метаданные, хранящиеся в Git, могут быть расширены для дальнейшего использования. В настоящее время он содержит хэш содержимого файла, и размер файла, чтобы клиенты могли отображать индикатор выполнения во время загрузки или отказаться от большой загрузки.

Comments

    Ничего не найдено.