Ответ 1
Люди часто помещают пустой файл в качестве заполнителя в папку, чтобы преодолеть это ограничение...
Итак, я вижу, что Git не распознает папки, или я должен сказать, когда единственное изменение между коммитами - это добавление пустых папок в рабочее дерево, которые они не отображаются в git status
после git add .
.
Как бы вы справились с необходимостью добавления пустых папок в рабочее дерево (для хранилища во время выполнения) и чтобы они отражались/создавались, когда другие репозитории вытащили из текущего репозитория (в который были добавлены папки)?
Люди часто помещают пустой файл в качестве заполнителя в папку, чтобы преодолеть это ограничение...
Я обычно помещаю .gitignore
в эти каталоги, так как вы, вероятно, хотите игнорировать любые созданные во время выполнения данные.
Вы абсолютно правы. Git, как и некоторые другие системы управления версиями, не учитывает пустые папки или свойства папок. Папки существуют только в том случае, если в них есть файл. Если вы хотите имитировать это, вам нужно отбросить файлы-заполнители.
Я обычно помещаю пустой .gitkeep в эти папки.
Вы должны понимать, что вы просите, чтобы ваша система управления версиями установила некоторые ресурсы, которые не являются источником, а не частью вашей системы сборки, но необходимы для работы вашего приложения. Я бы сделал одно из следующих действий:
Точно так же, если приложение захотелось добавить в файл журнала, не имеет смысла, чтобы этот файл журнала начинался в системе контроля версий, не так ли?
Поместите пустые файлы-заполнители в нужные папки git, чтобы отслеживать или добавлять инструкции для создания этих папок в вашу систему сборки, если это возможно.
Я также сталкиваюсь с той же проблемой. Я думаю, что это связано с тем, как Git отслеживает изменения. Он не отслеживает файлы, а скорее их содержимое. При показе изменений, коммитов или журналов он отображает изменения в определенные файлы и показывает изменения в отдельных файлах. Смотрите это видео для более подробной информации Tech Talk: Линус Торвальдс на git Линус конкретно дает пример о перемещении функции из одного файла в другой и как Git способен отслеживать изменение.
Я столкнулся с этой проблемой при попытке использовать git в качестве средства резервного копирования с поддержкой дедупликации и сжатия.
Мое решение заключалось в создании моей собственной системы. Он доступен на http://github.com/meingbg/store
Опять же, моя цель состояла в том, чтобы хранить файлы, а не работать с кодом.