git:プロジェクトルートでgitリポジトリを初期化する必要がありますか、プロジェクトの各重要な部分で初期化する必要がありますか?

git:プロジェクトルートでgitリポジトリを初期化する必要がありますか、プロジェクトの各重要な部分で初期化する必要がありますか?

質問で述べたように、私は4つのサブディレクトリを含むプロジェクトルートディレクトリを持っています。各ディレクトリには、プロジェクトの特定の個々の側面に関連するスクリプト/バイナリおよびドットファイルが含まれています。 Gitリポジトリを初期化する必要がありますか?

  1. プロジェクトルートディレクトリから
  2. 各サブディレクトリに1つずつあります。
  3. 両方(つまり、プロジェクトのルートに1つ、各ディレクトリに1つ)

現在、プロジェクトルートで1つが初期化されています。そこで実行すると、変更git statusされたサブディレクトリのみが表示され、そのサブディレクトリで変更された実際のファイルは表示されません。したがって、この設定を使用して実行する必要があるのかgit add <subdirectory>​​、それともgit add <path/to/file>…それで混乱が始まるのか疑問に思います。

ティア!

答え1

ストレージレイアウトに関連してリストされているすべてのオプションが利用可能です!最も簡単なオプションは、プロジェクトのルートディレクトリにgitリポジトリを作成することです。プロジェクトが非常に複雑でない限り、このオプションを使用することをお勧めします。

各サブディレクトリ内にサブディレクトリを作成すると、ディレクトリの変更が独立しているという利点がありますが、ストレージの使用が複雑になる可能性があります。

各サブディレクトリに1つずつ作成するそしてプロジェクトルートは使用したいものです。子サブモジュール。すべてのディレクトリをgitサブモジュールにすることで、そのディレクトリを独立したリポジトリとして使用し、変更を個別にコミットすることができ、ルートgitリポジトリを使用すると、特定のサブモジュールのどのバージョンが連携して動作するかを追跡できます。

出力情報git status: ディレクトリがまったく新しい場合、git statusそのディレクトリだけが実際に表示されます。簡潔にするために、出力が長すぎません。実際にgit自体はディレクトリを気にしません。(あなたも見ることができますこの問題)、その中にあるファイルのみ関連します。空のディレクトリがある場合、gitは気にせず、空のディレクトリをコミットすることはできません。

directory/subdirectory/fileGitは、ディレクトリに関する情報ではなく、ファイルとそのフルパス(たとえば)のみを保存します。 (これがほぼ空のディレクトリの一般的な慣行が開発された理由です:空のファイルを作成すること、.gitkeep他のディレクトリエントリなしでディレクトリを残すこと)

git addしたがって、完全なディレクトリであるか、それに含まれるすべてのファイルであるかには違いはありません。ディレクトリを追加することは、gitにそのディレクトリ内のすべてのファイルを追加するように指示する簡単な方法です。

関連情報