Невозможно добавить существующий репозиторий Git в новый репозиторий

Я пытаюсь создать новый репозиторий и добавить к нему два проекта. Один из проектов уже находился под контролем источника Git, поэтому я скопировал проект и удалил папку .git и удалил репозиторий, который у меня был для него. Когда я добавляю проекты в свой репозиторий, то тот, который не находился под контролем источника, добавляется отлично, а другой добавляется как подмодуль (зеленая папка на GitHub).

Я попытался удалить субмодуль, выполнив git rm --cached на нем, но он все еще существует, и я не могу добавить файлы проекта в репозиторий.

Ответ 1

Вы еще пробовали со свежими проверками? Кажется, что нет git submodule remove, поэтому вам придется вручную отредактировать .gitmodules.

Если вы хотите добавить модуль X (который уже находится под управлением версиями) в модуль Y (который является новым), используя извлеченные копии:

  • Cd в X
  • Убедитесь, что это автономный модуль: не должно быть .gitmodule (если есть, то это сложнее).
  • Запустите git status, чтобы убедиться, что у вас нет каких-либо незафиксированных изменений.
  • Запустите git clean -xfd, чтобы избавиться от всего, что в некотором .gitignore, например, временных файлов сборки и т.д.
  • Удалите каталог .git
  • Копировать X в Y
  • Запустите git add X внутри Y.

Вы также можете сделать что-то вроде git clone path-to-Y в X, за которым следует rm -rf Y/.git.

Ответ 2

rm -rf path_to_submodule
rm -rf .git/path_to_submodule
rm .gitmodules
git commit -am "removing submodule"
git push

.gitmodules должен быть непоследовательным  e .git/ не должно иметь ссылок на подмодуль

проверить:

git ls-files | grep submodule_name
find . | grep submodule_name

и, наконец:

git submodule add [email protected]:johndoe/johndoe_repo.git johndoe_branch/johndoe_repo --force

--force является необязательным, если у вас уже есть папка в вашей файловой системе