簡體   English   中英

Git - 忽略 node_modules 文件夾無處不在

[英]Git - Ignore node_modules folder everywhere

我有一個包含多個其他項目的項目:

  • 主要項目
    • 小項目1
    • 小項目2

所有包含node_modules文件夾。 我希望 git 忽略該文件夾,無論它從根文件夾開始的位置。 像這樣添加 in.gitignore 的東西:

*node_modules/*

node_modules/node_modules添加到.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 跟蹤。

編輯-(2022-04-09 之前)

在一個新的 monorepo 設置中,我發現只是使用這個

node_modules

解決它忽略子目錄中的所有node_modules,注意之前或之后沒有斜杠,這意味着遞歸。

參考

老路-(2022-04-09之前)

**/node_modules

**用於整個項目中的遞歸調用

與完整路徑名匹配的模式中的兩個連續星號**可能具有特殊含義:

前導**后跟斜杠表示在所有目錄中都匹配。 例如, **/foo匹配任何地方的文件或目錄foo ,與模式foo相同。 **/foo/bar匹配文件或目錄bar直接位於目錄foo下的任何位置。

尾隨/**匹配里面的所有內容。 例如, abc/**匹配目錄abc中的所有文件,相對於 .gitignore 文件的位置,具有無限深度。

斜杠后跟兩個連續的星號,然后斜杠匹配零個或多個目錄。 例如, a/\**/b匹配a/ba/x/ba/x/y/b等。

其他連續的星號被認為是無效的。

為什么這種方法比node_modules/更好

**充當遞歸模式。 它在子目錄中有 node_modules 的 monorepo 項目中很有用。 **將搜索目錄中的所有 node_modules 並忽略它們。

參考

首先也是最重要的事情是在 my-app 中添加.gitignore文件。 如下圖所示。

將 .gitignore 放在 node_modules 的父文件夾/目錄中。

然后將其添加到您的.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 中添加以下行將忽略整個存儲庫中的節點模塊。

node_modules

在此處輸入圖像描述

通過代碼編輯器或命令直接在根文件夾中創建.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 ------

按着這些次序 -

  • 在項目所在的文件夾上打開 git bash,或者通過點擊打開 vs 代碼終端
CTRL + `
  • 在終端中寫入 [ echo > .gitignore ],或者直接在文件夾中創建文件 [.gitignore]
  • 然后寫這個來忽略整個存儲庫中的節點模塊
node_modules
  • 或者,試試這個忽略來自多個子文件夾的所有 node_modules
**node_modules

注意:如果您在輸入文件夾或文件的名稱時出現拼寫錯誤,它將無法正常工作。 所以,仔細檢查拼寫

將 node_modules/ 或 node_modules 添加到 .gitignore 文件以忽略當前文件夾和任何子文件夾中名為 node_modules 的所有目錄。

在 Mac 中,

  1. 開源樹
  2. 單擊特定項目
  3. 點擊設置
  4. 單擊高級
  5. 單擊編輯 gitignore
  6. 寫“node_modules”
  7. 並保存。

如果您想通過命令行執行此操作,請輸入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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM