Чтобы создать репозиторий, который будет содержать копии файлов из других репозиториев без использования подмодулей Git, можно использовать подход слияния репозиториев, который включает следующие шаги:
1. Создайте новый главный репозиторий, который будет содержать файлы из других репозиториев.
```bash
git init combined-repo
cd combined-repo
```
2. Добавьте первый репозиторий как удалённый источник и загрузите его содержимое в отдельную ветку.
```bash
git remote add repo1 <url_to_repo1>
git fetch repo1
git checkout -b repo1-branch repo1/main # Может быть master вместо main
```
3. Перенесите файлы из первого репозитория в отдельную поддиректорию и сделайте коммит изменений.
```bash
mkdir repo1
git mv !(repo1) repo1
git commit -m "Перенёс файлы repo1 в отдельную директорию"
```
4. Вернитесь на основную ветку.
```bash
git checkout main
```
5. Слейте содержимое ветки с первым репозиторием в основную ветку с помощью `git merge`.
```bash
git merge repo1-branch --allow-unrelated-histories
```
6. Повторите шаги 2-5 для второго репозитория.
```bash
git remote add repo2 <url_to_repo2>
git fetch repo2
git checkout -b repo2-branch repo2/main # Может быть master вместо main
mkdir repo2
git mv !(repo2) repo2
git commit -m "Перенёс файлы repo2 в отдельную директорию"
git checkout main
git merge repo2-branch --allow-unrelated-histories
```
7. В результате получится репозиторий, содержащий директории `repo1` и `repo2` с файлами из соответствующих репозиториев.
Учтите, что в командах `!(repo1)` и `!(repo2)` используется расширение командного интерпретатора для инвертирования выборки (т.е. выбрать все файлы и папки, кроме указанных после `!`). Для правильной работы этих команд убедитесь, что включено расширение globbing в вашей шелл-среде (в bash это `shopt -s extglob`).
После выполнения этих шагов вы можете push-нуть итоговый репозиторий на удалённый сервер, и любой клонирующий будет получать полный набор файлов.
```bash
git remote add origin <url_to_combined_repo>
git push -u origin main
```
Этот подход помогает объединить содержимое нескольких репозиториев в одном, отказавшись от использования подмодулей и записывая всю историю в одном месте, что упрощает клонирование и управление кодом.