Порядок команд при миграции на Git LFS и файлы отслеживания - PullRequest
0 голосов
/ 03 февраля 2019

Я хочу использовать LFS для существующего Git-репозитория и отслеживать *.foo файлы, также конвертируя файлы в историю.Я думаю, я могу сделать это:

git lfs track "*.foo"
# changed `.gitattributes` and all `.foo` files
commit -a -m "Started tracking foo files."
git lfs migrate import --everything --include="*.foo"

Должен ли я отслеживать файлы перед импортом репозитория, как я делаю выше, или я должен сделать это позже?Имеет ли это значение?

1 Ответ

0 голосов
/ 03 февраля 2019

При попытке выполнить оба действия, похоже, что при импорте репозитория автоматически включается отслеживание LFS, поэтому нет необходимости использовать git lfs track отдельно.

git lfs migrate import --everything --include="*.foo"

Фактически, если вы включаете отслеживаниеСначала у вас будет дополнительный коммит, в котором типы файлов добавляются в .gitattributes.Оказывается, что git lfs migrate import фактически добавит .gitattributes с правильной информацией отслеживания в качестве первого коммита в истории .Если у вас нет .gitattributes файла, он будет добавлен в прошлом .

Аналогично, если у вас нет .gitattributes (скажем, вы конвертировали Gitрепозиторий из репозитория Subversion, например), затем, если вы сначала добавите свой собственный .gitattributes в репозиторий и зафиксируете его перед выполнением git lfs track, это приведет к версии .gitattributes в истории, которая делает не Включено отслеживание LFS.Если вы решите добавить .gitattributes вручную, вы должны выполнить git lfs track… перед фиксацией файла, чтобы во всех коммитах, в которых он появился, было включено отслеживание.

Таким образом, наилучший подходbe:

  1. Выполните git lfs migrate…, прежде чем делать что-либо еще.
  2. Обновите файл .gitattributes, добавленный Git, с дополнительными типами файлов (если у вас не было * 1032)* файл уже).

В итоге, git lfs migrate import …, кажется, включает в себя git lfs track … функциональность;Кажется, нет необходимости называть последнее по отдельности, ни до, ни после.

...