Git добавить все подкаталоги
У меня проблемы с добавлением папки и всех ее подкаталогов в мой репозиторий git. Я понял, что это очень популярный вопрос после некоторого поиска в Google, и я попробовал каждое предложение без удачи, особенно предложение со страницы руководства на git-add. Я даже пытался git add -A
без успеха. Ради простоты, скажем, я инициализировал свой репозиторий git как Dir1
, Тогда у меня есть следующая структура каталогов файлов.
Dir1/file1-1.txt
Dir1/file1-2.txt
Dir1/Dir2/file2-1.txt
Dir1/Dir2/Dir3/file3-1.txt
Мои настоящие файлы имеют подкаталоги глубиной 5-6 уровней, так есть ли команда git для добавления всех файлов из каждого подкаталога в мой репозиторий? Прямо сейчас, когда я делаю предложение со страницы руководства git add Dir1/\*
я могу видеть Dir2
в моем репо, но он отображается как зеленая папка, и я не могу открыть его, что заставляет меня поверить, что все файлы / папки в Dir2
не добавили. Любая помощь будет принята с благодарностью. Я новый пользователь git (меньше недели пользуюсь им), поэтому постарайтесь сохранить ваши инструкции на уровне новичка.
9 ответов
Делать,
git add .
в то время как в корне хранилища. Это добавит все. Если вы делаете git add *
, он будет только добавлять файлы *
указывает на. Одна точка указывает на каталог.
Если ваш каталог или файл не был добавлен в git index/repo после выполнения вышеуказанной команды, не забудьте проверить, помечен ли он как git в файле .gitignore.
Вы также можете столкнуться с проблемами, если подкаталог сам по себе является git-репозиторием, т.е. имеет каталог.git. Проверьте с помощью ls -a
,
Для удаления перейдите в подкаталог и rm .git -rf
,
Также изо всех сил, но получил право печатать
git add -f ./JS/*
где JS - это имя моей папки, содержащей подпапки и файлы
Я не могу точно сказать, так ли это, но то, что мне показалось проблемой, - наличие файлов.gitignore в некоторых подкаталогах. Опять же, я не могу гарантировать это, но все работало после того, как они были удалены.
-
git add
один файл, который находится на самом глубоком уровне вашей файловой структуры (последний уровеньFolder
вы хотите добавить).
Например:
git add Folder/Subfolder-L1/Subfolder-L2/Subfolder-L3/...file123.md
- Затем,
git add --all :/
.
Он добавит всеFolders
,Subfolders
иfiles
к существующему репозиторию. -
git commit -m 'your commit
. -
git push -u origin main
, нажмите на удаленный источник. Вуаля!
Если у кого-то не работает (как и в моем случае), используйте который включены все файлы во всех подкаталогах. Моя структура каталогов:
MainDirectory
|_.git
|_README
|_folder1
| |_file1
| |_file2
| |_subfolder1
| | |_file3
| | |_file4
| |_subfolder2
| |_file5
| |_file6
|_folder2
| |_file1
| |_file2
| |_subfolder1
| | |_file3
| | |_file4
| |_subfolder2
| |_file5
| |_file6
|_otherfiles
делает
git add ./*
включены все на глубину одного уровня или более, в то время как
git add .
добавлял только файлы текущего уровня.
Я видел эту проблему раньше, когда имя (под) папки, которую я пытался добавить, начиналось с "_Something_"
Я снял подчеркивания, и это сработало. Проверьте, есть ли в вашей папке символы, которые могут вызывать проблемы.
Скорее всего, файл.gitignore в игре. Обратите внимание, что файлы.gitignore могут появляться не только на корневом уровне репо, но и на любом подуровне. Вы можете попробовать это из корневого уровня, чтобы найти их:
находить. имя ".gitignore"
а затем изучите результаты, чтобы увидеть, что может помешать добавлению ваших подкаталогов.
Также могут быть задействованы субмодули. Проверьте каталоги с ошибками на наличие файлов ".gitmodules".