web-dev-qa-db-ja.com

Git-特定のフォルダーに含まれる特定のファイルを無視する

私はmsysgitを使用していて、ツリー内に多くのbin /フォルダーを含むプロジェクトツリーがあります。プロジェクトのルートにある.gitignoreファイルを使用すると、プロジェクトツリーの任意の場所にあるbin /フォルダー内にあるすべての.dllファイルを無視する必要があります。 「bin/*。dll」を試しましたが、機能しません。プロジェクトのルートにあるbin /フォルダーに対してのみ機能していると思います。

19
Jim

同様の問題が発生し、気づきました。ファイルはすでに追加され、gitにチェックインされています。

違いを認識する方法:Gitはファイルを「新規」としてではなく、「変更済み」として表示しました。この詳細は私にかなりの時間を要しました...

それが問題である場合は、単にこれらのファイルを「git rm」して、最初からやり直してください。突然、.gitignoreが期待どおりに機能し始めます。

14
Josef D.

私はただ/bin私のファイルにあり、動作しているようです。 (その中の特定のファイルではなく)フォルダ全体を無視します

これが現在の完全な内容です(まだ進化しています)。

.svn*
obj/
bin/
*.suo
*.user
Log/
log/
*.db
13
Chetan Sastry

2016年8月の更新(7年後、Git 2.9.3/Git 2.10)

**/bin/*.dll

それはどんな深さでも機能します。


元の回答(2009、Git 1.6)

試しましたか:

**/bin/*.dll

それは私のmsysgit1.6.3で動作します(Gitワークスペースのルートディレクトリに.gitignoreファイルがあります)。

実際、上記は「x/bin/z.dll」ではなく、「x/y/bin/z.dll」のみを無視します。

別の構文は次のとおりです。

**/*/bin/*.dll

しかし、それは深さ2ではなく深さ3しか得られません!

したがって、*。dllを無視する必要のある場所があまり多くない場合でも、最も簡単な解決策は、それらの「bin」ディレクトリにあるローカルの.gitignoreファイルです。

または、主要な最初の深さをカバーするディレクティブのコレクション:

bin/*.dll
**/bin/*.dll
**/*/bin/*.dll
**/**/*/bin/*.dll

など、すべて1つの.gitignoreファイルに含まれます。

11
VonC

Windowsでの.gitignoreは、機能していないようです。 msysgit v 1.7.6ベータ版を使用していますが、.gitignorのマニュアルページにあるように動作しません。ここで、.gitignoreファイルの内容をリポジトリ内の$ GIT_DIR/info/excludeファイルにコピーすると機能します。

ですから、残念なことに、これは複製されませんが、何もないよりはましです。

4
Coffee_fan

使用している言語に応じて、 リンク から選択できます。

たとえば、Javaを使用している場合は、 gitignore を使用できます。

また https://www.gitignore.io/ は、オンラインでgitingoreファイルを作成できます。オペレーティングシステム、IDE、またはプログラミング言語を入力するだけで、それを使用すると、プロジェクトのgitignoreファイルを簡単に作成できます。

0
027

*/binは私のために働いた

*/bin /もそうだと思います。

0
rball