Прошу подсказать.
Заливал проект 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:
Комментариев нет:
Отправить комментарий