Отображение подмодулей не найдено.gitmodule для пути, который не является подмодулем



у меня есть проект, который имеет субмодуль на lib/three20



мой

700   14  

14 ответов:

после rajibchowdhury ' s ответ (много голосов), использовать git rm команда, которая рекомендуется для удаления специальная запись в индексе, указывающем на подмодуль ("папка" со специальным режимом 160000).

если эта специальная запись путь не упоминается в .gitmodule (как 'Classes/Support/Three20 в исходный вопрос), то вам нужно удалить его, чтобы избежать "отображение подмодулей не найдено в .gitmodules на пути" сообщение об ошибке.

вы можете проверить все записи в индексе, которые ссылаются на подмодули:

git ls-files --stage | grep 160000

предыдущий ответ (ноябрь 2010 года)

возможно, что вы не объявили свой начальный подмодуль правильно (т. е. без хвоста ' / ' в конце, как описано в мой старый ответ, хотя .gitmodule имеет пути, которые выглядят нормально в он.)

этой теме отмечает:

вы получаете ту же ошибку при запуске 'git submodule init' из свежего клона?
Если это так, то у вас что-то не так.

если у вас нет подмодулей, удалить .gitmodules, и любые ссылки на подмодули в .git / config, и убедитесь, что Pikimal dir не имеет .git реж в нем.
Если это устраняет проблему, проверьте и сделайте то же самое на своей рабочей копии круиза.

очевидно, не удаляйте свой основной .gitmodules файл, но присмотрите за другими дополнительными .gitmodules файлы в вашем рабочем дереве.


еще в теме "неправильная инициализация подмодуль", Jefromi упоминает подмодули, которые на самом деле являются gitlinks.

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

отображение подмодулей не найдено .gitmodules для пути 'OtherLibrary / MKStore' когда

$ git submodule update --init

Я не знал, почему произошла ошибка. Потратив минуту и нашел ответ в stackoverflow.

$ git rm --cached OtherLibrary/MKStore

и затем снова обновите подмодуль. Он работает нормально.

http://en.saturngod.net/no-submodule-mapping-found-in-gitmodules

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

git -c diff.mnemonicprefix=false -c core.quotepath=false -c credential.helper=sourcetree submodule update --init --recursive
No submodule mapping found in .gitmodules for path 'SampleProject/SampleProject'
Completed with errors, see above

мой сценарий я неправильно применил каталог проекта содержит .ГИТ.
SourceTree рассматривал эту папку как подмодуль git, но на самом деле нет.

мое решение-это использовать командную строку, чтобы удалить его.

$ git rm -r SampleProject --cached
$ git commit -m "clean up folders"

удалите мусор в git и держите его в чистоте.

я решил эту проблему для меня. Изначально я пытался сделать это:

git submodule add --branch master [URL] [PATH_TO_SUBMODULE]

как оказалось, спецификация параметра --branch не должна использоваться, если вы хотите клонировать главную ветвь. Он выдает эту ошибку:

fatal: Cannot force update the current branch.
Unable to checkout submodule '[PATH_TO_SUBMODULE]'

каждый раз, когда вы пытаетесь сделать

git submodule sync

эта ошибка будет брошен:

No submodule mapping found in .gitmodules for path '[PATH_TO_SUBMODULE]'

и линии, необходимые В.gitmodules не добавил.

так что решение для меня было это:

git submodule add [URL] [PATH_TO_SUBMODULE]

Я просто ударил эту ошибку после попытки "git submodule init" на новой проверке моего РЕПО. Оказывается, я изначально указал подпапку модуля с неправильным случаем. Поскольку я нахожусь на Mac с чувствительной к регистру файловой системой (hurr), это не удалось. Например:

git submodule add [email protected]:user/project.git MyApp/Resources/Project
Cloning into 'MyApp/Resources/Project'

успешно, но беда в том, что на диске путь

Myapp/Resources/Project

Я не понимаю, почему git инициализирует модуль в неправильную папку (игнорируя неправильный случай в моей команде), но затем работает правильно (путем сбоя) с последующими командами.

просто была эта проблема. Некоторое время я пробовал советы по удалению пути, git удаляя путь, удаляя .gitmodules, удаление записи из .git / config, добавление подмодуля обратно, а затем фиксация и нажатие изменения. Это было озадачивающе, потому что это выглядело без изменений, когда я делал "git commit-a", поэтому я попытался нажать только удаление, а затем нажать readdition, чтобы сделать его похожим на изменение.

через некоторое время я случайно заметил, что после удаления всего, если я запустил "git submodule update --init", у него было сообщение о конкретном имени, на которое git больше не должен был ссылаться: имя репозитория, на который ссылался подмодуль, а не имя пути, на которое он его проверял. Применение grep к показал, что эта ссылка была .git / index. Поэтому я запустил "git rm -- cached repo-name", а затем прочитал модуль. Когда я совершил это время, сообщение о фиксации включало изменение, которое удаляло этот неожиданный объект. После этого он работает штраф.

Не уверен, что произошло, я предполагаю, что кто-то неправильно использовал команду подмодуля git, возможно, изменив аргументы. Может быть, даже я... Надеюсь, это кому-то поможет!

сопоставление папок можно найти в .git/modules папка (у каждого есть со ссылкой на worktree), поэтому убедитесь, что эти папки соответствуют конфигурации в .gitmodules и .git/config.

так .gitmodules есть правильный путь:

[submodule "<path>"]
  path = <path>
  url = [email protected]:foo/bar.git

и .git/modules/<path>/config на [core] раздел у вас есть правильный путь к вашей <path>, например,

[core]
  repositoryformatversion = 0
  filemode = true
  bare = false
  logallrefupdates = true
  worktree = ../../../<path>

если правая папка в .git/modules отсутствует, то вы должны пойти в свой подмодуль dir и попробовать git reset HEAD --hard или git checkout master -f. Если это не поможет, вы, вероятно, хотите удалить все ссылки на сломанный подмодуль и добавить его снова, затем см.:переименовать подмодуль git.

сценарий: изменение подмодуля из каталога dirA-xxx в другой каталог dirB-xxx

  1. переместить dirA-xxx в dirB-xxx
  2. изменение входа в систему .gitmodules использовать dirB-xxx
  3. изменение входа в систему .git / config для использования dirB-xxx
  4. изменить .git / modules/dirA-xxx / config для отражения правильного каталога
  5. изменить dirA-xxx/.git, чтобы отразить правильный каталог
  6. выполнить git submodule status

    Если вернуться ошибка :отображение подмодулей не найдено.gitmodules для Дира-ХХХ пути. Это объясняется Дира-ХХХ не существует, но она по-прежнему отслеживаются с помощью Git. Обновите индекс git с помощью:git rm --cached dirA-xxx

    попробовать git submodule foreach git pull. Я не проходил фактического изучения структуры подмодуля git, поэтому выше шаги могут что-то сломать. Тем не менее, пройдя выше шаги, все выглядит хорошо на данный момент. Если у вас есть какие-либо идеи или правильные шаги, чтобы сделать это, поделитесь им здесь. :)

просто git rm subdir будет ОК. это приведет к удалению поддира в качестве индекса.

в файле .gitmodules, Я заменил строку

"path = thirdsrc\boost" 

С

"path = thirdsrc/boost", 

и это решено! - -

обычно git создает скрытый каталог в корневом каталоге проекта (.git/)

когда вы работаете на CMS, его можно установить модули / Плагины переноски .git / каталог с метаданными git для конкретного модуля / плагина

самое быстрое решение-найти все .каталоги git и храните только корневой каталог метаданных git. Если вы это сделаете, ГИТ не будет рассматривать эти модули как подмодули проекта.

посмотрев на мое .gitmodules, оказалось, что у меня была заглавная буква, где я не должен был. Так что имейте в виду,.gitmodules каталоги регистр

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

проблема для нас заключалась в том, что были добавлены повторяющиеся записи подмодуля .gitmodules (вероятно, от слияния). Мы искали путь, на который жаловался ГИТ .gitmodules и нашел два одинаковых раздела. Удаление одного из разделов решило проблему для нас.

для чего это стоит, git 1.7.1 дал ошибку "нет отображения подмодуля", но git 2.13.0, похоже, не заботился.

Comments

    Ничего не найдено.