Подтвердить что ты не робот

Замененный сторонний код с подмодулями git, теперь я не могу переключать ветки

Вот история: У меня есть 2 git ветки master и develop Я сейчас на develop.

У меня давно были исходные файлы сторонней библиотеки, включенные в мое репо в каталоге Vendor/MGTwitterEngine. Этот код уже был объединен с мастером.

Теперь, на ветке develop, я удалил библиотеку и заменил ее подмодулем git и зафиксировал.

Проблема заключается в том, что я больше не могу вернуться к ветки master. Если я попытаюсь, я получаю следующую ошибку:

The following untracked working tree files would be overwritten by checkout:
    Vendor/MGTwitterEngine/MGTwitterHTTPURLConnection.h
    Vendor/MGTwitterEngine/MGTwitterHTTPURLConnection.m
    Vendor/MGTwitterEngine/MGTwitterLibXMLParser.h
    Vendor/MGTwitterEngine/MGTwitterLibXMLParser.m
    Vendor/MGTwitterEngine/MGTwitterMessagesLibXMLParser.h
    Vendor/MGTwitterEngine/MGTwitterMessagesLibXMLParser.m
    Vendor/MGTwitterEngine/MGTwitterMessagesParser.h
    Vendor/MGTwitterEngine/MGTwitterMessagesParser.m
    ...
   Aborting

git считает, что файлы подмодулей "не отслеживаются" и не заменят их на отслеживаемые, не подмодульные файлы в том же месте.

Как я могу обойти эту проблему?

4b9b3361

Ответ 1

К сожалению, я считаю, что это лишь один из недостатков использования подмодулей. Эти проблемы описаны в разделе "Проблемы с субмодулями" в Pro Git, но, короче говоря, простейшим обходным решением является перемещение подмодуля каталога перед тем, как переключиться на ветвь master:

mv Vendor Vendor.moved
git checkout master

Аналогично, когда вы переходите на develop, вы должны сделать:

git checkout develop
mv Vendor.moved Vendor