Раздражающе настойчивый Git в репозитории

#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. Джекпот! Этого не хватало. Спасибо!