Вопрос:
У меня есть проект, содержащий несколько других проектов:
- Основной проект
- Мини-проект 1
- Мини-проект 2
Все, содержащие папку node_modules. Я хочу, чтобы git игнорировал папку независимо от того, где она начинается с корневой папки. Что-то вроде этого добавить в .gitignore:
*node_modules/* Лучший ответ:
Добавьте это
node_modules/
to .gitignore, чтобы игнорировать все каталоги, называемые node_modules в текущей папке, и любые подпапки
Ответ №1
Используйте универсальный однострочный в терминале в каталоге проекта:
touch.gitignore && echo “node_modules/” >>.gitignore && git rm -r –cached node_modules; git status
Он работает независимо от того, создали ли вы .gitignore или нет, независимо от того, добавили ли вы node_modules в отслеживание git или нет.
Затем подтвердите изменения и нажмите .gitignore.
Объяснение
touch сгенерирует файл .gitignore, если он еще не существует.
echo и >> добавят node_modules/ в конце .gitignore, в результате чего папка node_modules и все подпапки будут игнорироваться.
git rm -r —cached удаляет папку node_modules из управления git, если она была добавлена ранее. В противном случае будет отображено предупреждение pathspec ‘node_modules’ did not match any files, которое не имеет побочных эффектов, и его можно смело игнорировать. Флаги делают удаление рекурсивным и включают кеш.
git status отображает новые изменения. Появится изменение .gitignore, в то время как node_modules не появится, так как git больше не отслеживает его.
Ответ №2
Прежде всего, добавьте файл .gitignore в мое приложение. Как на изображении ниже.
и затем добавьте это в свой файл .gitignore
/node_modules
Примечание
Вы также можете добавить другие файлы, чтобы игнорировать их, чтобы они были отправлены на github. Вот еще несколько файлов, хранящихся в .gitignore. Вы можете добавить их по вашему требованию. # – это просто способ комментировать в файле .gitignore.
# See https://help.github.com/ignore-files/ for more about ignoring files. # dependencies /node_modules # testing /coverage # production /build # misc .DS_Store .env.local .env.development.local .env.test.local .env.production.local npm-debug.log* yarn-debug.log* yarn-error.log* Ответ №3
Попробуйте сделать что-то вроде этого
**/node_modules
** используется для рекурсивного вызова во всем проекте
Две последовательные звездочки (“**”) в шаблонах, сопоставленные с полным путем, могут иметь особое значение:
Ведущий ““, за которым следует косая черта, означает совпадение во всех каталогах. Например, “/foo” соответствует файлу или каталогу “foo” в любом месте, так же, как шаблон “foo”. “**/foo/bar” соответствует файлу или каталогу “bar” в любом месте, которое находится непосредственно в каталоге “foo”.
Трейлинг “/” соответствует всему внутри. Например, “abc/” сопоставляет все файлы в каталоге “abc” относительно расположения файла .gitignore с бесконечной глубиной.
Косая черта, за которой следуют две последовательные звездочки, затем косая черта соответствует нулю или нескольким каталогам. Например, “a/**/b” соответствует “a/b”, “a/x/b”, “a/x/y/b” и т.д.
Другие последовательные звездочки считаются недействительными.
Ответ №4
Создайте файл .gitignore в корневой папке напрямую с помощью редактора кода или по команде
Для Mac & Linux
touch .gitignore
Для Windows
echo .gitignore
открыть .gitignore объявить папку или имя файла, как это /foldername