gitが管理するファイル構造内の特定のディレクトリのすべてのインスタンスを無視できるかどうかは誰でも知っています。
多くのサブモジュールを持つMavenプロジェクトのすべての「ターゲット」フォルダーを除外しようとしています。トップレベルの.gitignoreでそれらのそれぞれを明示的に除外できることはわかっていますが、実際に** / target / *のようなパターンを指定して、サブディレクトリのインスタンスを自動的に無視できるようにしたいですか?
これは可能ですか?
gitが管理するファイル構造内の特定のディレクトリのすべてのインスタンスを無視できるかどうかは誰でも知っています。
多くのサブモジュールを持つMavenプロジェクトのすべての「ターゲット」フォルダーを除外しようとしています。トップレベルの.gitignoreでそれらのそれぞれを明示的に除外できることはわかっていますが、実際に** / target / *のようなパターンを指定して、サブディレクトリのインスタンスを自動的に無視できるようにしたいですか?
これは可能ですか?
回答:
.gitignore
ファイルでパターンを使用することができます。gitignoreのmanページを参照してください。パターンで*/target/*
は、targetという名前のディレクトリとその下のディレクトリはすべて無視する必要があります。または*/target/**
、ターゲットの下のすべてを無視しようとする可能性があります。
/target/**
\.git\info\exclude
よくファイルで動作します。
.gitignore
ルートディレクトリにファイルがないすべてのサブディレクトリに適用されます。鉱山は次のようになります。
.classpath
.project
.settings/
target/
これはマルチモジュールのmavenプロジェクトです。すべてのサブモジュールは、m2eclipseを使用して個々のEclipseプロジェクトとしてインポートされます。これ以上.gitignore
ファイルはありません。実際、gitignoreのmanページを見ると:
.gitignore
パスと同じディレクトリまたは任意の親ディレクトリにあるファイルから読み取られたパターン…
したがって、これでうまくいくはずです。
src/main/java/org/example/game/archery/bow/LongBow.java
とsrc/main/java/org/example/game/archery/target/Target.java
、そのような.gitignore設定でLongBowをヒットするものは何も見つかりません:
すべての望ましくないファイルから、gitignoreに次の行を追加します
/target/
*/target/**
**/META-INF/
!.mvn/wrapper/maven-wrapper.jar
### STS ###
.apt_generated
.classpath
.factorypath
.project
.settings
.springBeans
.sts4-cache
### IntelliJ IDEA ###
.idea
*.iws
*.iml
*.ipr
### NetBeans ###
/nbproject/private/
/build/
/nbbuild/
/dist/
/nbdist/
/.nb-gradle/