1. ホーム
  2. git

[解決済み] git プロジェクト上の 'bin' ディレクトリを無視する。

2022-02-14 10:08:24

質問

このようなディレクトリ構造になっています。

.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 フォルダが既にある場合は、明示的に削除する必要があります。Git は、すでに追跡しているパスが新しい .gitignore パターンを使用します。フォルダの削除を実行する ( rm ) からインデックスのみ ( --キャッシュ ) 再帰的な ( -r ). binフォルダーのルートに対するコマンドライン例。

git rm -r --cached bin