Как Git работает с двоичными файлами?

  • Должен ли я что-то делать, чтобы сообщить Git, являются ли некоторые файлы двоичными (как в Subversion)? Или Git может обрабатывать двоичные данные автоматически?
  • Если я изменю двоичный файл, так что у меня будет 100 двоичных ревизий, будет ли git просто хранить все 100 версий по отдельности в репозитории?
  • Для чего нужны подмодули с git?

person prosseek    schedule 30.08.2010    source источник


Ответы (3)


  1. Git обычно может автоматически обнаруживать двоичные файлы.
  2. Нет, Git попытается сохранить наборы изменений на основе дельты , если дешевле (не всегда).
  3. Подмодули используются, если вы хотите ссылаться на другие репозитории Git в своем проекте.
person Amber    schedule 30.08.2010
comment
Разве этот ответ не должен включать рекомендацию не использовать Git для хранения двоичных файлов? Git был специально разработан для хранения текста, а не двоичного кода. Есть и другие инструменты, которые лучше справляются с управлением архивами, например NuGet, Maven, Artifactory и т. Д. - person skitheo; 21.03.2018
comment
@skitheo Мне бы тоже хотелось получить более подробный ответ, особенно о вероятности взрыва. - person Benny Bottema; 19.07.2019

У меня была, по сути, та же проблема: я хотел git файлы pickle, которые являются двоичными, но git думает, что это текст.

Я нашел эту главу об атрибутах Git в Pro Git Book. Итак, я решил свои проблемы, создав файл .gitattributes со следующей строкой:

*.pickle binary
person Alexandre Mazel    schedule 17.09.2013

git add my-binary-file
git commit
git push

Добавим ваш бинарный файл; это автоматически.

Действительно, если у вас есть 100 версий вашего файла, он будет хранить его (но в сжатом виде).

Вы можете использовать подмодули для ссылок на другие репозитории.

person Guillaume Lebourgeois    schedule 30.08.2010