4

複数のプロジェクトを含む Visual Studio ソリューションを含む git リポジトリがあります。最初のリポジトリにプロジェクトの 1 つを追加したい別の git リポジトリ (VS) があります。

Repo 1:
Project_1
Project_2
Project_3

Repo 2:
Project_4
Project_5
Project_1 (Same as Project_1 above)

git リポジトリ内のプロジェクトの 1 つだけを別の git リポジトリと共有することはできますか? 2 番目のレポで作業するときは、最初のレポに属するプロジェクトに対して commit/pull/push を実行できるようにしたいのですが、最初のレポを開くと、最初に行った変更を取得できるようにしたいと考えています。 2 番目のレポのプロジェクト。

私は見ましgit submodulesたが、共有プロジェクトを最初の git リポジトリから別のリポジトリに抽出したくないので、それは役に立たないと思います。最初のレポをそのまま残しておきたい...

4

1 に答える 1

1

gitリポジトリの構造について混乱していると思います。プロジェクトを構築する方法は、各プロジェクトのリポジトリを作成し、それらをスーパー プロジェクトに追加することRepo 1ですRepo 2

グラフィカルに

Git                  # Main git project directory
  /Projects
    /Project_1       # Each one is its own Git repository
    /Project_2
    /Project_3
    /Project_4
    /Project_5

  /Repos             # The main repositories that utilize the projects
    /Repo_1          # The super project directory
      .gitmodules    # The .gitmodules file created by 'git submodules add'
        --> submodule with url=../../Projects/Project_1  # entry in .gitmodules
        --> submodule with url=../../Projects/Project_2
        --> submodule with url=../../Projects/Project_3
    /Repo_2
      .gitmodules
        --> submodule with url=../../Projects/Project_1
        --> submodule with url=../../Projects/Project_4
        --> submodule with url=../../Projects/Project_5

submoduleURLProject_1は同じ場所を指しているため、またはgit pushsubmoduleディレクトリのいずれかに実際に変更を同じプロジェクト リポジトリにプッシュしている場合。Repo_1Repo_2

2 つのスーパー プロジェクト間で変更を同期することについては、いくつかの落とし穴があります。これは、2 つの異なるスーパー リポジトリでgit同じsubmoduleものが異なるリビジョンを指すことを可能にするためです。詳細情報 (プッシュ、変更のコミット、更新の方法など) については、submodulesチェックアウトすることをお勧めします。

  1. http://speirs.org/blog/2009/5/11/understanding-git-submodules.html
  2. http://git-scm.com/book/ch6-6.html
于 2012-06-13T20:11:56.673 に答える