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

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

Ответ 1

  1. Git обычно может автоматически определять двоичные файлы.
  2. Нет, Git будет пытаться хранить наборы изменений на основе дельты, если это дешевле (не всегда так).
  3. Подмодули используются, если вы хотите сослаться на другие Git-репозитории в вашем проекте.

Ответ 2

Git использует эвристику, чтобы попытаться определить, является ли файл двоичным. Смотрите статью для получения дополнительной информации и как заставить git обрабатывать данный файл как двоичный файл.

Для хорошего учебника по подмодулям см. здесь и здесь.

Ответ 3

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

Я нашел эту главу в git Атрибутах в книге Pro git. Поэтому я решил свои проблемы, создав файл .gitattributes с этой строкой:

*.pickle binary

Ответ 4

git add my-binary-file
git commit
git push

Будет добавлен ваш двоичный файл; он автоматически.

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

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

Ответ 5

Проблема связана с .gitignore

Следующие пути игнорируются одним из ваших файлов .gitignore: XXX/YYYY/Bin1_0x1d_0x0d.bin

Используйте -f, если вы действительно хотите их добавить.

git add -f XXX/YYYY/*

ИЛИ

git add -f XXX/YYYY/Bin1_0x1d_0x0d.bin