Страницы

Поиск по вопросам

суббота, 20 апреля 2019 г.

Файлы в одной папке не индексируются и не отправляются на GitHub

Прошу подсказать.
Заливал проект Asp.Net MVC через Git Bash на GitHub. Но ключевая папка проекта почему-то копируется без файлов, т.е. пустая папка. Остальные файлы проекта, включая другую папку копируются нормально. Скрин прилагаю.
Также прилагаю скрин, что папка DataProject не хочет индексироваться, точней файлы внутри неё -
В чем проблема? Я писал все как в инструкции:
git add . git commit -a"name" git push
Также пробовал заходить отдельно в папку DataProject и там прописывать git add .; git commit , выходил на уровень выше проверял статус и красное пропадало.....но файлы по-прежнему на ГитХаб не загружались. Поодскажите, пож-т.


Ответ

В чём причина такого поведения
Вот эта строка:
modified: DataProject (modified content)
Указывает на то, что папка DataProject — это ещё один репозиторий внутри основного репозитория. Это называется субмодуль (submodule). Гитхаб показывает субмодули специальной серой иконкой:

Субмодуль — это полностью самостоятельный репозиторий. У него свои данные, свои коммиты, своя история. Внешний, «родительский» репозиторий не может сохранять изменения файлов внутри субмодуля. Он знает (сохраняет в своих коммитах) только следующее:
В каком пути лежит субмодуль (например, корень проекта/DataProject). На какой коммит субмодуля нужно смотреть.
Похоже, что у вас такая структура:
~/Downloads/DataProject # это ваш проект | → ~/Downloads/DataProject/DataProject # а это субмодуль внутри него → ~/Downloads/DataProject/packages # просто папка
Скорее всего субмодуль здесь не нужен, и вы его добавили по ошибке.
Обратите внимание: папка packages не должна сохраняться в репозитории — добавьте её в gitignore. (Спасибо Pavel Mayorov за наблюдательность)
Как починить репозиторий
Правильный путь — удалить субмодуль
Инструкция здесь: Как удалить субмодуль?
Простой путь — начать заново
Если вы только начали работу над проектом, можно удалить историю Git и создать новый репозиторий. Все ваши файлы останутся на месте. Если беспокоитесь — сделайте бэкап в новую папку или архив.
Удалите старый репозиторий:
cd ~/Downloads/DataProject # Удаляем репозиторий rm -rf .git # И файл с конфигурацией субмодуля. rm -f DataProject/.git # И список субмодулей rm -f .gitmodules Теперь заново инициализируем репозиторий. Убедитесь, что вы находитесь в той же папке!
git init Добавьте файл .gitignore для VS в корень проекта. Теперь лишние файлы не будут сохраняться в Git. Сохраните .gitignore в коммит:
git add .gitignore git commit -m'add gitignore' Добавьте оставшиеся файлы.
git add . git commit -m'message' Теперь снова настройте удалённый репозиторий и перепишите его новой историей.
git remote add <адрес удалённого репозитория на гитхабе> git push -uf origin master:

Комментариев нет:

Отправить комментарий