web-dev-qa-db-ja.com

EclipseプロジェクトフォルダーをGitリポジトリとして使用することが推奨されないのはなぜですか?

プロジェクトをgitとして共有し、Eclipseプロジェクトフォルダーをgitリポジトリとして作成しようとすると、Eclipseはそのようにすることは推奨されておらず、Eclipseワークスペースの外部にあるべきであると述べています。

何故ですか?

26
David Hofmann

から Eclipse EGitヘルプページ

プロジェクトをリポジトリのルートフォルダにすることはおそらくお勧めできません

その理由は、.projectファイルがルートフォルダーを占有するため、このリポジトリに別のプロジェクトを追加することはできないためです。プロジェクトをサブフォルダーとして追加することもできますが、この種のプロジェクトのネストは、至る所で多くの問題を引き起こすことが知られています。別のプロジェクトを追加するには、この変更をコミットする前に、プロジェクトをリポジトリ内のサブフォルダーに移動し、2番目のプロジェクトを別のサブフォルダーとして追加する必要があります。

いくつかの詳細情報

リポジトリをEclipseワークスペースの外部に保持することをお勧めします

これにはいくつかの理由があります。

新しいリポジトリは、Eclipseワークスペースの完全なフォルダ構造を(潜在的な)コンテンツと見なします。これにより、たとえばコミットする前に変更を計算するときに、パフォーマンスの問題が発生する可能性があります(たとえば、完全な.metadataフォルダーをスキャンします)。多くの場合、ワークスペースには、意味的にEGitに関連しないが、簡単に除外できないデッドフォルダー(削除されたプロジェクトなど)が含まれます。

メタデータ(.git-)フォルダーは、Eclipseワークスペースの子になります。これにより、Eclipseによる不要なフォルダートラバーサルが発生する可能性があるかどうかは不明です。

Eclipseワークスペースを破棄することで、リポジトリを簡単に破棄できます

17
cacba

リポジトリをEclipseワークスペースの外部に保持することに同意しますが、それでもEclipseプロジェクトのルートディレクトリ内にgitリポジトリを作成します( この回答 のように)。

プログラムが相互に依存する小さなプロジェクトで構成されていない限り、1つのgitリポジトリを1つのEclipseプロジェクトに制限します。
git repoは、ツリー構造のcontentを記録することであり、そのツリーがを表す場合oneプロジェクトでは、管理、タグ付け、分岐、マージが簡単です( 一貫したファイルのセット として)。
複数のプロジェクトを表す場合、そのGitリポジトリ内の各プロジェクトの「1.0」のようなタグが何を表すのかがわかりません。

さらに、.project.classpath、および.settingsをGitリポジトリに追加するのが好きです( " gitはデフォルトでEclipseプロジェクトファイルを新しいリポジトリから除外しますか? = ")

17
VonC