2013-08-27 3 views
0

Git говорит мне, что я не могу добавить некоторые файлы в индекс, потому что они находятся в подмодуле. Я думаю, это правда, что эти файлы когда-то были в подмодуле, но я не могу найти никаких признаков того, что они все еще находятся в подмодуле. Если я готовлюсь к .gitmodules, я ничего не нахожу. Как я могу удалить этот фантомный подмодуль, чтобы добавить файлы в свой индекс?несуществующий подмодуль, упомянутый в git error

[email protected]:/opt/staging/my.domain.com/public/profiles/mei_main$ ls 
civicrm_starter.sql mei_main.info mei_main.install mei_main.profile modules themes 
[email protected]:/opt/staging/my.domain.com/public/profiles/mei_main$ git add themes 
fatal: Path 'profiles/mei_main/themes' is in submodule 'profiles/mei_main' 
[email protected]:/opt/staging/my.domain.com/public/profiles/mei_main$ ls -la 
total 4704 
drwxr-xr-x 4 48 502 4096 Aug 19 11:58 . 
drwxr-xr-x 6 48 502 4096 Aug 19 11:49 .. 
-rwxr-xr-x 1 503 502 4786089 Apr 29 13:43 civicrm_starter.sql 
-rwxr-xr-x 1 48 502 2985 Jun 4 02:20 mei_main.info 
-rwxr-xr-x 1 48 502  579 Jun 4 02:20 mei_main.install 
-rwxr-xr-x 1 48 502  736 Jun 4 02:20 mei_main.profile 
drwxr-xr-x 4 48 502 4096 Aug 26 17:26 modules 
drwxr-xr-x 4 48 502 4096 Aug 16 10:23 themes 
[email protected]:/opt/staging/my.domain.com/public/profiles/mei_main$ cd ../../ 
[email protected]:/opt/staging/my.domain.com/public$ grep path .gitmodules | sed 's/.*= //' 
grep: .gitmodules: No such file or directory 
+0

Попробуйте 'найти -name .git', я держу пари, что у вас есть вложенное репо, т.е. подмодуль. Файл '.gitmodules' является только значением по умолчанию для команды' git subodule', сама по себе просто помогает в вложенных репозиториях schlepping. – jthill

+0

Я попробовал find -name .git. Он нашел только мое основное репозитование .git. – arnoldbird

+0

Делает ли git ls-tree --full-tree HEAD | grep '^ 160000 commit'' получать хиты? – jthill

ответ

0

я был в состоянии сделать каталог видимым для мерзавца, переименовав его ...

мв профилей profiles2

После переименования его, мерзавец мог видеть это, и я мог бы добавить его в репозиторий .. .

мерзавец добавить profiles2

А потом ...

мерзавец мв profiles2 профили

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

мв профили profiles2

Тогда я мог бы вытащить ...

мерзавец тянуть

Наконец, переместите старый неотслеживаемый каталог профилей где для безопасного хранения ...

мв profiles2 ~

0

Если файл .gitmodules отсутствует, посмотрите внутри .git/config. См. here для получения дополнительной информации о том, как очистить все.

+0

Нет никаких упоминаний о подмодулях в .git/config, а также нет каталога модулей в .git. – arnoldbird

+0

Итак, на данный момент у меня есть этот каталог, который я не могу добавить в git, потому что git считает, что это подмодуль. Тем не менее, нигде нет файла, который заявляет, что он является подмодулем. Если я сделаю git для этого каталога, git не будет жаловаться. Но если я тогда получаю статус git, каталог не ставится для фиксации - он нигде не упоминается. Я также подтвердил, что путь не находится в моем файле .gitignore. – arnoldbird

Смежные вопросы