web-dev-qa-db-ja.com

サブフォルダーを無視するGit

私の.Netソリューションにはたくさんのプロジェクトがあります。私はすべての "bin/Debug"と "bin/Release"フォルダ(とその中身)を除外したいのですが、それでも "bin"フォルダ自体とそこに含まれるすべてのdllを含めます。

"bin /"を含む.gitignoreは、 "Debug"フォルダと "Release"フォルダを無視しますが、 "bin"フォルダに含まれるすべてのDLLも無視します。

無視するパターンを完全に "Solution/Project/bin/Debug"として指定しない限り、.gitignoreファイルの "bin/Debug"または "bin/Release"でディレクトリが除外されることはありません。私のソリューションの各プロジェクトにこのフルパターンを含める必要があります。また、追加する新しいプロジェクトにも追加する必要があります。

助言がありますか?

349
Marcel

あなたはワイルドカードを試しましたか?

Solution/*/bin/Debug
Solution/*/bin/Release

Gitのバージョン1.8.2では、**ワイルドカードを使ってあらゆるレベルのサブディレクトリに一致させることもできます。

**/bin/Debug/
**/bin/Release/
454
Josh Lee

最上位で.gitignoreを使用すると、プロジェクト内の同じ名前のすべてのディレクトリを無視できます。例えば:

Debug/
Release/

これはすぐに更新されるので、git statusを実行したときに表示されます。これらのディレクトリがまだgitに追加されていないことを確認してください。

95
Andreas

質問はすべてのサブディレクトリを無視することを求めているのではありませんが、どこにも答えが見つからなかったので、投稿します:*/*

47
mgold

上記の答えはすべて有効ですが、そのディレクトリからリポジトリにファイルを追加した後は、そのファイルを含むそのディレクトリ/サブディレクトリを無視できないということです(gitはそのディレクティブを無視します)。 )最初にリポジトリからターゲットディレクトリからすべてのファイルを削除する必要があります、そしてあなたはそのフォルダを無視することができます。

33
ajacian81

.gitignoreファイルに正しいエントリを追加することに加えて、すでにリポジトリに追加されたものを無視しようとしている場合は、git rm -r /path/to/dirを実行して、.gitignoreファイルにdirを追加する前にコミットする必要があります。そうでなければgitが無視する唯一のものはあなたのignoreディレクティブです。

22
MidnightJava

これを私のマシンで動作させる唯一の方法は、次のようにすることでした。

# Ignore all directories, and all sub-directories, and it's contents:
*/*

#Now ignore all files in the current directory 
#(This fails to ignore files without a ".", for example 
#'file.txt' works, but 
#'file' doesn't):
/*.*

#Only Include these specific directories and subdirectories:
!wordpress/
!wordpress/*/
!wordpress/*/wp-content/
!wordpress/*/wp-content/themes/

含める各レベルのコンテンツを明示的に許可する必要があることに注意してください。したがって、テーマの下に5つのサブディレクトリがある場合でも、それを綴る必要があります。

これはここ@ Yarinのコメントからです: https://stackoverflow.com/a/5250314/1696153

これらは役に立つトピックでした:

私も試した

*
*/*
**/**

**/wp-content/themes/**

または/wp-content/themes/**/*

どちらも私にとってはうまくいきませんでした。歩道とエラーがたくさん!

15
Katie S

すべてのサブディレクトリを無視するには、単に使うことができます。

**/

これはgitのバージョン1.8.2以降で動作します。

5
frederickjh

/binディレクトリにあるファイルを追跡しながらすべてのサブフォルダを無視する一般的な方法は、プロジェクトの.gitignoreファイルに次の行を追加することです。

bin/*/*

特定の名前付きサブフォルダーのみを無視したい場合は、次のようにします。

bin/Debug/*
bin/Release/*

nb。 binディレクトリが(.gitignoreファイルと一緒に)プロジェクトのルートにない場合は、代わりにbin/*/*あなたが必要とするかもしれませんpath/to/bin/*/*

5
Nick F

コンテンツとサブディレクトリを除外するには

**/bin/*

サブディレクトリをすべて除外してコンテンツを取得するには、 "/"を追加します。

**/bin/*/
4
A. Morel