以下のようなディレクトリ構造になっています。
.git/
.gitignore
main/
...
tools/
...
...
main や tools など、どの階層にも 'bin'というディレクトリがありますが、これを無視したいのです (そしてその下もすべて無視したいのです)。.gitignore でこれらのパターンをそれぞれ試してみましたが、どれもうまくいきませんでした。
/**/bin/**/*
/./**/bin/**/*
./**/bin/**/*
**/bin/**/*
*/bin/**/*
bin/**/*
/**/bin/* #and the others with just * at the end too
誰か助けてくれませんか?最初のパターン(私が動作すべきだと思っているもの)は、これを実行すると問題なく動作します。
/main/**/bin/**/*
しかし、すべてのトップレベルディレクトリにエントリを用意したくはありませんし、新しいディレクトリを追加するたびに.gitignoreを修正するのも嫌です。
これは Windows で最新の msysgit を使用しています。
EDIT: もうひとつ、ファイルやディレクトリの名前に 'bin'という文字列が含まれているものがありますが、これらは無視されたくありません :)。
バージョン 1.8.2 より前のバージョンでは、.gitignore
の中で **
に特別な意味はありませんでした。バージョン1.8.2以降のgitでは、0個以上のサブディレクトリを意味する **
をサポートしています(リリースノートを参照)。
ディレクトリツリーの現在のレベルより下のどこかで bin と呼ばれるすべてのディレクトリを無視するには、パターンを持つ .gitignore
ファイルを使用します。
bin/
manのページには、似たようなパターンで
foo` というディレクトリを無視する例があります。
編集:。
もしすでに git インデックスに追跡したくない bin フォルダがあるのなら、それを明示的に削除しなければなりません。すでに追跡されているパスが新しい .gitignore
パターンにマッチするようになったからといって、Git が追跡をやめてしまうことはありません。フォルダの削除(rm)を、インデックスのみ(--cached)から再帰的(-r)に実行します。ルートの bin フォルダに対するコマンドラインの例です。
git rm -r --cached bin
あなたの夢の中の.gitignore
はどうなっているのでしょうか。
bin/
になっています。