Git игнорирует загрузку в подкаталог - PullRequest
1 голос
/ 26 апреля 2011

Я новичок в Git и пытаюсь загрузить подпапку в свой «главный» проект, но в настоящее время не могу. Я получил все файлы в корневой папке, загруженные через Git, и могу нажать и клонировать корневую папку. У меня есть папка с названием «include» в корневой папке (root / includes) с 5 файлами .php в ней, которую я хотел бы загрузить. В настоящее время, когда я клонирую проект, есть папка «include», но в ней нет файлов. Файлы, которые были помещены в папку «includes», были скопированы из другого проекта. Я попытался снова клонировать проект и поместить файлы в папку «include», но безуспешно. Ниже приведен мой командный журнал после клонирования проекта и успешного извлечения корневых файлов:

add -A includes
cd includes
add -A 
cd ../
commit -a -m "uploading includes folder"
git push origin

Assembla показывает, что в папке нет файлов. Фактически, папка отображается как файл. Возможно ли, что папка include рассматривается как подмодуль? Если я фиксирую в папке, файлы будут перечислены с «режимом создания» перед ними.


Когда я нажимаю на папку, в папке включаемых файлов появляются файлы. Вот вывод, который я получаю после добавления файла config.php в папку include:

add config.php
fatal: Path 'includes/config.php' is in submodule 'includes'

Я не сделал подкаталог подмодулем, но он отображается как один?

Ответы [ 2 ]

3 голосов
/ 26 апреля 2011

Если в каталоге нет файлов, git не будет ставить каталог при запуске git add.Git не заботится о файлах и каталогах, таких как SVN, он отслеживает изменения содержимого.

См. git игнорирует пустые папки?

Обновление

Поскольку вы обновили свой вопрос, я обновлю свой ответ.То, что вы сделали, легко сделать ошибку, если вы запустите git add directory без конца /, это может добавить субмодуль в ваш репозиторий.

См. Мой собственный вопрос в прошлом году: Чтослучилось с моим каталогом на Github?

2 голосов
/ 26 апреля 2011

Ах, ваше обновление показывает, что в миксе есть субмодулей . Если вы не знаете, что это такое, то, вероятно, это был несчастный случай (и его легко исправить). Вероятно, вы обнаружите, что у вас есть каталог .git в вашем основном каталоге, и и каталог includes/.git.

Решением вашей проблемы является удаление каталога includes/.git:

rm -rf includes/.git

Обычно Git хранит все свои метаданные в одном подкаталоге .git в верхней части дерева каталогов. Однако, если вы используете подмодули, то другие каталоги также будут содержать .git каталоги.

...