Невозможно добавить существующий репозиторий 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
является необязательным, если у вас уже есть папка в вашей файловой системе