Git-すべての場所でnode_modulesフォルダーを無視する


367

他の複数のプロジェクトを含むプロジェクトがあります。

  • 主なプロジェクト
    • ミニプロジェクト1
    • ミニプロジェクト2

すべてを含むnode_modulesフォルダー。ルートフォルダーからどこから始めても、gitにフォルダーを無視させたいです。.gitignoreに追加するこのようなもの:

*node_modules/*

回答:


747

これを追加

node_modules/

現在のフォルダーとサブフォルダーで.gitignore呼び出さnode_modulesれたすべてのディレクトリを無視するためにファイルする


カルマに対して同じことをするためのグロブパスは何でしょうか?
SuperUberDuper

7
nodejsのgitignoreテンプレートの場合:github.com/github/gitignore/blob/master/Node.gitignore
Xavier Egea

8
以前にnode_modulesフォルダーをgitに追加したことがある場合は、@ AndrewSchreiberの回答を参照してください。「git rm -r --cached node_modules」を使用して、キャッシュから削除する必要があります。
キャスパー

176

プロジェクトディレクトリのターミナルでユニバーサルワンライナーを使用します。

touch .gitignore && echo "node_modules /" >> .gitignore && git rm -r --cached node_modules; gitステータス

を作成した.gitignoreかどうかに関係なく、node_modulesgitトラッキングに追加したかどうかに関係なく機能します。

次に、.gitignore変更をコミットしてプッシュします。

説明

touch.gitignoreファイルが存在しない場合は生成されます。

echoそして、>>追加されますnode_modules/の終わりに.gitignore引き起こして、node_modulesフォルダとすべてのサブフォルダを無視すること。

git rm -r --cachednode_modules以前に追加されていた場合、そのフォルダーをgitコントロールから削除します。それ以外の場合は、警告が表示されpathspec 'node_modules' did not match any filesます。副作用はなく、無視しても問題ありません。フラグにより​​、削除が再帰的に行われ、キャッシュが含まれます。

git status新しい変更を表示します。への変更.gitignoreが表示node_modulesされますが、gitで追跡されなくなったため表示されません。


5
touchここでは必要あり>>ません。ファイルが存在しない場合は作成されます。
ライオネロ

touch必要です。そうでなければ>>戻りno such file or directory: .gitignoreます。
Andrew Schreiber

1
うーん、OSごとに異なるようです
ライオネロ

macOSはタッチを必要としないようです
Carles Alcolea

echo "node_modules/" > .gitignore既存の指定されたファイルの末尾にテキストを追加して、元のコンテンツで新しいファイルを作成する必要があります>>
chrisz

28

このようなことをしてみてください

**/node_modules

** プロジェクト全体で再帰呼び出しに使用されます

**フルパス名と照合されるパターン内の2つの連続するアスタリスクは、特別な意味を持つ場合があります。

先頭に**スラッシュが続く場合は、すべてのディレクトリで一致することを意味します。たとえば、patternと同じように、どこでも**/fooファイルまたはディレクトリに一致します。ディレクトリの直下にあるファイルまたはディレクトリに一致します。foofoo**/foo/barbarfoo

トレーリングは/**内部のすべてに一致します。たとえば、.gitignoreファイルの場所を基準にして、abc/**ディレクトリ内のすべてのファイルabcを無限の深さに一致させます。

スラッシュとそれに続く2つのアスタリスク、それに続くスラッシュは、0個以上のディレクトリと一致します。例えば、a/\**/bマッチa/ba/x/ba/x/y/bとのようにします。

他の連続するアスタリスクは無効と見なされます。

参照


2
これが正解です。

なぜこのアプローチが単純なよりも優れているのか説明してnode_modules/ください。
タンコム

22

まず第一.gitignoreに、my-appにファイルを追加することです。下の画像のように。

.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に追加するのはなぜですか?
セバスチャンニールセン

6
@SebastianNielsen node_modulesを追跡しないのと同じ理由。あなたはコンパイルによってビルド/を取得します。
ダニエルファウスト

8

コードエディターまたはコマンドによってルートフォルダーに.gitignoreファイルを直接 作成する

MacおよびLinuxの場合

 .gitignoreをタッチします 

Windowsの場合

 エコー.gitignore 

オープン.gitignoreのこのような宣言フォルダやファイル名/フォルダ名


4

.gitignoreに以下の行を追加すると、リポジトリ全体のノードモジュールが無視されます。

node_modules

ここに画像の説明を入力してください


1
どうやって?.gitignoreファイルが存在する同じフォルダー内のnode_modulesフォルダーのみを無視します
Rajendran Nadar

@RajendranNadarありがとう、私は自分でそれを理解しようとしていました。
Jack BeNimble

0

以下の行を.gitignoreに追加します

*/node_modules/*

これにより、現在のディレクトリとサブディレクトリのすべてのnode_modulesが無視されます。


この質問にはすでに受け入れられた回答があることに注意してください。回答を編集して、この質問にすでに存在する他の回答よりも改善されるようにしてください。
hongsy

0

SVN / Tortoise gitでも同じことができます。

node_modules-> Tortoise git-> addを右クリックして、リストを無視します。

これにより.gitIgnoreが生成され、ステージングでnode_modulesフォルダーが再び見つかりません。


0
**node_modules

これは私のために働く

サブフォルダーに存在するすべてのnode_modulesを無視する再帰的なアプローチ

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.