#windows #git
#Windows #git
Вопрос:
Я создаю проект, который охватывает интерфейс, серверную часть и мобильные устройства. Я настроил git в корне проекта, чтобы все этапы могли быть зафиксированы. Тем не менее, я загрузил папку интерфейса с помощью create-react-app, которая создает собственную структуру проекта (включая git).
Как это бывает, когда внутри git есть git, он интерпретируется как подпроект. Я просто хотел зафиксировать их все в одном репозитории. Поэтому я приступил к удалению всех ссылок на git из папки frontend, чтобы она была только в корневом каталоге.
Я перепробовал все трюки, которые мог придумать, и это все еще не сработало, файлы по-прежнему отслеживаются отдельно. Вот список команд, которые я пробовал как в Powershell, так и в Git Bash:
rm -rf .git
rm -rf .git*
find . | grep ".git/" | xargs rm -rf
del /F /S /Q /A .git
rmdir .git
rm -rf .gitkeep
rd .git /S/Q
FOR /F "tokens=*" %G IN ('DIR /B /AD /S *.git*') DO RMDIR /S /Q "%G"
Есть какие-нибудь намеки на то, как вытащить это из моей папки?
Спасибо!
Ответ №1:
Удаление .git
— хороший первый шаг, но чего вам не хватает, так это gitlink (специальная запись в индексе вашего основного репозитория, ссылающаяся на SHA1 корневого дерева подраздела)
Вам нужно добавить:
git rm subrepoRootFolder # no trailing /
git commit -m "remove subrepo gitlink"
Тогда вы сможете git add .
, и все файлы внутри subrepoRootFolder
будут (наконец) добавлены в ваш основной репозиторий. Затем зафиксируйте и нажмите.
Комментарии:
1. Спасибо за ответ. Возможно, я делаю что-то довольно глупое, но без завершающего / все, что я получаю, это сообщение об ошибке «fatal: pathspec ‘frontend’ не соответствует ни одному файлу». Я попытался даже указать полный путь. Есть какие-либо намеки на то, чего мне не хватает?
2. @RodrigoCastilho Если запись
frontend
не существует, значит, все в порядке. Пока этого нетfrontend.git
, вы можете сделатьgit add frontend
и проверить с помощьюgit status
, что он добавил все файлы внутриfrontend
3. Джекпот! Этого не хватало. Спасибо!