Как git справляется с двоичными файлами?


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

5 ответов:

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

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

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

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

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

*.pickle binary
git add my-binary-file
git commit
git push

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

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

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

проблема .gitignore

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

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

git add-f XXX / YYYY/*

или

git add-f XXX/YYYY / Bin1_0x1d_0x0d. bin