1

2 つのプロジェクト A と B を呼び出しましょう。それぞれの構造は次のとおりです。

/
|- Foo
|   |- core
|   |    |- bar.txt
|   |    |- ...
|   |- specific
|          |- ...
|- ...

/Foo/core/のコンテンツが存在し、A と B でローカルに同期している必要があります。つまり、プロジェクト A で bar.txt を編集すると、同じマシンのプロジェクト B でその変更を取得できるはずです。 、 およびその逆。

「Core」という名前のプロジェクトを作成して、それを A と B のサブモジュールにしようとしました。問題は、bar.txt を編集してリモートにプッシュしてから A をプッシュすると、明らかにコードを取得できないことです。サブモジュールの更新を伴うプロジェクト B で。同じプロジェクトではありません。

サブツリーのマージも試しました。問題は、「コア」がスタンドアロン プロジェクトであることを意図しておらず、そのまま開発できないことです。それは単なるリソースファイルであり、より大きなもののための共通の機能です。したがって、私は自分の bar.txt を A と B のいずれかで編集し、特にこのプロジェクトの一部としてそこでテストし、他のプロジェクトで何らかの形で取得してテストできるようにしたいと考えています。

Git Book のサブツリーのマージに関する章では、次のように述べられています。

[...] master ブランチの rack サブディレクトリに変更を加えてから、後でそれらを rack_branch ブランチにマージして、メンテナに送信するか、上流にプッシュすることができます。

しかし、どうすればよいのか、2 つのローカル フォルダを同期させる方法については説明されていません。

4

1 に答える 1

0

サブモジュールは機能します。プロジェクトAで作業しているときにコアプロジェクトに変更を加えると、両方に変更をプッシュします。プロジェクトBのコアを更新するには、プロジェクトBのコアにあるときに変更をプルする必要があります。プロジェクトBにCDを取り出して、プロジェクトgit add -A && git commit -m "updated core"Bを最新のコアに更新します。

于 2012-10-30T17:33:14.813 に答える