プロジェクトをgitとして共有し、Eclipseプロジェクトフォルダーをgitリポジトリとして作成しようとすると、Eclipseは、そうすることは推奨されておらず、Eclipseワークスペースの外部にある必要があると言います。
何故ですか?
リポジトリをEclipseワークスペースの外部に保持することに同意しますが、それでもEclipseプロジェクトのルートディレクトリ内にgitリポジトリを作成します(この回答のように)。
プログラムが相互に依存する小さなプロジェクトで構成されていない限り、1つのgitリポジトリを1つのEclipseプロジェクトに制限します。
gitレポジトリは、ツリー構造のコンテンツを記録することを目的としており、そのツリーが1つのプロジェクトを表す場合、(一貫したファイルのセットとして)管理、タグ付け、分岐、マージが容易になります。
複数のプロジェクトを表す場合、そのGitリポジトリ内の各プロジェクトで「1.0」のようなタグが何を表すのかがわかりません。
.project
さらに、.classpath
と.settings
をGitリポジトリに追加するのが好きです(「 gitはデフォルトでEclipseプロジェクトファイルを新しいリポジトリから除外しますか?」)
プロジェクトをリポジトリのルートフォルダにするのはおそらく良い考えではありません
その理由は、.projectファイルがルートフォルダーを占有するため、このリポジトリに別のプロジェクトを追加できないためです。プロジェクトをサブフォルダーとして追加することもできますが、この種のプロジェクトのネストは、至る所で多くの問題を引き起こすことが知られています。別のプロジェクトを追加するには、この変更をコミットする前に、プロジェクトをリポジトリ内のサブフォルダーに移動し、2番目のプロジェクトを別のサブフォルダーとして追加する必要があります。
いくつかの詳細情報
リポジトリをEclipseワークスペースの外に置くことをお勧めします
これにはいくつかの理由があります。
新しいリポジトリは、Eclipseワークスペースの完全なフォルダ構造を(潜在的な)コンテンツと見なします。これにより、たとえばコミットする前に変更を計算するときに、パフォーマンスの問題が発生する可能性があります(たとえば、完全な.metadataフォルダーをスキャンします)。多くの場合、ワークスペースには、意味的にEGitに関連しないが、簡単に除外できないデッドフォルダー(削除されたプロジェクトなど)が含まれます。
メタデータ(.git-)フォルダーは、Eclipseワークスペースの子になります。これにより、Eclipseによる不要なフォルダートラバーサルが発生する可能性があるかどうかは不明です。
Eclipseワークスペースを破棄することでリポジトリを簡単に破棄できます