Подтвердить что ты не робот

Git и пустые папки

Итак, я вижу, что Git не распознает папки, или я должен сказать, когда единственное изменение между коммитами - это добавление пустых папок в рабочее дерево, которые они не отображаются в git status после git add ..

Как бы вы справились с необходимостью добавления пустых папок в рабочее дерево (для хранилища во время выполнения) и чтобы они отражались/создавались, когда другие репозитории вытащили из текущего репозитория (в который были добавлены папки)?

4b9b3361

Ответ 1

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

Ответ 2

Я обычно помещаю .gitignore в эти каталоги, так как вы, вероятно, хотите игнорировать любые созданные во время выполнения данные.

Ответ 3

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

Ответ 4

Я обычно помещаю пустой .gitkeep в эти папки.

Ответ 5

Вы должны понимать, что вы просите, чтобы ваша система управления версиями установила некоторые ресурсы, которые не являются источником, а не частью вашей системы сборки, но необходимы для работы вашего приложения. Я бы сделал одно из следующих действий:

  • Сделайте сборку созданной необходимой директорией.
  • Попросите приложение создать необходимые каталоги при запуске.

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

Ответ 6

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

Ответ 7

Я также сталкиваюсь с той же проблемой. Я думаю, что это связано с тем, как Git отслеживает изменения. Он не отслеживает файлы, а скорее их содержимое. При показе изменений, коммитов или журналов он отображает изменения в определенные файлы и показывает изменения в отдельных файлах. Смотрите это видео для более подробной информации Tech Talk: Линус Торвальдс на git Линус конкретно дает пример о перемещении функции из одного файла в другой и как Git способен отслеживать изменение.

Ответ 8

Я столкнулся с этой проблемой при попытке использовать git в качестве средства резервного копирования с поддержкой дедупликации и сжатия.

Мое решение заключалось в создании моей собственной системы. Он доступен на http://github.com/meingbg/store

Опять же, моя цель состояла в том, чтобы хранить файлы, а не работать с кодом.