[英]Git - Ignore node_modules folder everywhere
我有一個包含多個其他項目的項目:
所有包含node_modules
文件夾。 我希望 git 忽略該文件夾,無論它從根文件夾開始的位置。 像這樣添加 in.gitignore 的東西:
*node_modules/*
在項目目錄的終端中使用通用單行:
touch .gitignore && echo "node_modules/" >> .gitignore && git rm -r --cached node_modules ; 狀態
無論您是否創建了.gitignore
,無論您是否已將node_modules
添加到 git 跟蹤,它都有效。
然后提交並推送.gitignore
更改。
解釋
如果.gitignore
文件尚不存在, touch
將生成它。
echo
和>>
將在.gitignore
末尾附加node_modules/
,導致node_modules
文件夾和所有子文件夾被忽略。
git rm -r --cached
如果之前添加了node_modules
文件夾,則從 git 控件中刪除它。 否則,這將顯示警告pathspec 'node_modules' did not match any files
,它沒有副作用,您可以放心地忽略。 這些標志導致刪除是遞歸的並包括緩存。
git status
顯示新的更改。 將出現對.gitignore
的更改,而node_modules
將不會出現,因為它不再被 git 跟蹤。
在一個新的 monorepo 設置中,我發現只是使用這個
node_modules
解決它忽略子目錄中的所有node_modules,注意之前或之后沒有斜杠,這意味着遞歸。
**/node_modules
**
用於整個項目中的遞歸調用
與完整路徑名匹配的模式中的兩個連續星號
**
可能具有特殊含義:前導
**
后跟斜杠表示在所有目錄中都匹配。 例如,**/foo
匹配任何地方的文件或目錄foo
,與模式foo
相同。**/foo/bar
匹配文件或目錄bar
直接位於目錄foo
下的任何位置。尾隨
/**
匹配里面的所有內容。 例如,abc/**
匹配目錄abc
中的所有文件,相對於 .gitignore 文件的位置,具有無限深度。斜杠后跟兩個連續的星號,然后斜杠匹配零個或多個目錄。 例如,
a/\**/b
匹配a/b
、a/x/b
、a/x/y/b
等。其他連續的星號被認為是無效的。
node_modules/
更好 **
充當遞歸模式。 它在子目錄中有 node_modules 的 monorepo 項目中很有用。 **
將搜索目錄中的所有 node_modules 並忽略它們。
首先也是最重要的事情是在 my-app 中添加.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*
通過代碼編輯器或命令直接在根文件夾中創建.gitignore文件
適用於 Mac 和 Linux
touch .gitignore
對於 Windows
echo >.gitignore
像這樣打開.gitignore聲明文件夾或文件名/foldername
**node_modules
這對我有用
忽略子文件夾中存在的所有 node_modules 的遞歸方法
如果沒有,它將自動創建一個.gitignore
文件,然后創建一個文件名.gitignore
並添加復制並粘貼以下代碼
# dependencies
/node_modules
/.pnp
.pnp.js
# 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*
以下這些都是不必要的文件
有關忽略文件的更多信息,請參閱https://help.github.com/articles/ignoring-files/ 。
並保存.gitignore
文件,您可以上傳
將以下行添加到您的 .gitignore
/node_modules/
就我而言,在沒有前斜杠的情況下編寫 /node_modules 是行不通的
你也可以用 SVN/Tortoise git 來做。
只需右鍵單擊 node_modules -> Tortoise git -> 添加到忽略列表。
這將為您生成 .gitIgnore 並且您將不會在暫存中再次找到 node_modules 文件夾。
如果您的子項目/客戶端 node_modules 被提交,
# dependencies
/node_modules
/.pnp
.pnp.js
# 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*
然后在最后一行添加“node_modules”。
# dependencies
/node_modules
/.pnp
.pnp.js
# 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*
node_modules
# ------ Up Here ------
按着這些次序 -
CTRL + `
node_modules
**node_modules
注意:如果您在輸入文件夾或文件的名稱時出現拼寫錯誤,它將無法正常工作。 所以,仔細檢查拼寫
將 node_modules/ 或 node_modules 添加到 .gitignore 文件以忽略當前文件夾和任何子文件夾中名為 node_modules 的所有目錄。
在 Mac 中,
如果您想通過命令行執行此操作,請輸入echo node_modules/ >.gitignore
。 您可以通過輸入git status
來檢查 git 是否正在跟蹤文件夾。 如果它在git rm -r --cached node_modules
中被跟蹤類型。
將以下行添加到您的 .gitignore
*/node_modules/*
這將忽略當前目錄和子目錄中的所有 node_modules。
只需將不同的 .gitignore 文件添加到迷你項目 1 和迷你項目 2。每個 .gitignore 文件都應該 /node_modules 並且你很高興。
與那些嘗試上述答案但仍面臨問題的人為敵
我最終嘗試了幾乎所有的答案,它解決了我忽略 node_modules 的問題,但只有在我提交更改之后!
在 git 存儲庫中不保留任何模塊並不是一個好習慣。 # gitignore 文件 刪除 node_modules 文件夾創建 gitignore 刪除 node_modules
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.