web-dev-qa-db-ja.com

Gitは無視し、Mavenターゲット

Gitが管理するファイル構造内の特定のディレクトリのすべてのインスタンスを無視できるかどうかは誰でも知っています。

いくつかのサブモジュールがあるMavenプロジェクトのすべての「ターゲット」フォルダーを除外したいと考えています。トップレベルの.gitignoreでそれらをそれぞれ明示的に除外できることはわかっていますが、**/target/*のようなパターンを指定して、サブディレクトリ内のインスタンスを自動的に無視できるようにしたいのですが?

これは可能ですか?

108
sgargan

.gitignoreファイルでパターンを使用することができます。 gitignore manページ を参照してください。パターン*/target/*は、targetという名前のディレクトリとその下のすべてのものを無視する必要があります。または、*/target/**を試して、ターゲットの下のすべてを無視することもできます。

89
baudtack

ルートディレクトリの.gitignoreファイルdoesはすべてのサブディレクトリに適用されます。私のものは次のようになります。

.classpath
.project
.settings/
target/

これは、マルチモジュールMavenプロジェクトです。すべてのサブモジュールは、m2Eclipseを使用して個々のEclipseプロジェクトとしてインポートされます。 .gitignoreファイルはこれ以上ありません。実際、 gitignore man page を見ると:

パスと同じディレクトリまたは任意の親ディレクトリにある.gitignoreファイルから読み取ったパターン…

だからこれはあなたのために働くはずです。

210

Abhijeetのコメントですでに指摘したように、次のような行を追加できます。

/target/**

to exclude\.git\info\フォルダー内のファイル。

次に、リモートリポジトリのtargetフォルダーを削除する場合は、まずローカルリポジトリからこのフォルダーを手動で削除し、コミットしてからプッシュする必要があります。これは、gitが最初に変更されたターゲットフォルダーのコンテンツを表示するためです。

4

ターゲットフォルダーにあるすべてのクラスをgitから無視します。開いている.gitignoreファイルに次の行を追加します。

/。class

OR

*/ターゲット/**

それは私にとって完璧に機能しています。それを試してみてください。

1
Rajeev Rathor