2016-11-30 6 views
0

Git Subtree Mergeを使用して、Repo BのすべてのブランチをRepo Aに同時に1つのGitコマンドでマージできますか? Repo Bには15の異なる支店があり、私はrepoとすべての支店のサブマージを一度に行うことで時間を節約しようとしています。私はオンラインでそれをする方法を見つけたことはありません。それは不可能ですか?Git Subtree Merge - サブツリーレポのすべてのブランチを同時に親レポにマージする

ことができない場合、誰が親レポA.レポBに個別に各ブランチをマージするための最も効率的な方法は、このようなものになります知っているん:

Repo B/masterbranch 
Repo B/developbranch 
Repo B/featurebranch 

を、私は何かを見てレポA(親)が必要です

Repo A 
    component -> folder of some sort that holds the different branches 
    masterbranch 
    developbranch 
    featurebranch 

私はsubTreeマージで履歴を保持できるので、私はその点について何かする必要があると思っています。

How do you merge two Git repositories?

+0

「Repo A」には、 "Repo B"の各ブランチに別々の*サブディレクトリ*? –

+0

ディレクトリ内に1つの「コンポーネント」ディレクトリがあり、特定のブランチを選択してその履歴を見ることができます。 – bschmitty

答えて

1

:しかし、唯一の原因は、これを次の中からなっている私の.bowerrcに一度に一つのファイルをすることの

私の最初の試みを衝突ファイルを一度にそれを一方の分岐を行うことが可能と思われますはい、次の2つの方法でそれを行うことができます - サブモジュール及び(サブツリーなし)リモート追加:サブモジュールによって

    レポAでは
  1. 、サブモジュールとしてレポBを追加し、コンポーネント(cd component)のサブフォルダでgit submodule add <URL for Repo B> component
  2. を使用するには、レポB(git branch -a)の全ての枝を見つけます。 Repo BのブランチはRepo Aの一部として存在します。Repo Bの別のブランチに切り替えることができます
  3. Repo Aで送信されたRepo Bの変更を希望する場合は、Repo Aディレクトリ(cd ..)に戻る必要があります。レポAにはgit commitgit pushを使用します。レポB自体に送信されたレポBを変更するには、コンポーネントサブフォルダ(cd component)でgit commitgit pushを使用します。追加するリモートことで

  1. すべて、あなたの条件とは異なるgit remote add origin1 <URL for Repo B>
  2. プルgit pull origin1
  3. によってレポしかし、この多分ビットを使用して、ローカルレポAにおけるレポBのリモートを追加します。同じディレクトリ内のRepo AとRepo Bの枝は(git branch -a)のようになります。

remotes/origin/<all Repo A branches> remotes/origin1/<all Repo B branches>

注:あなたが枝のいずれかに切り替えることができます。 Repo AとRepo Bの両方にmasterブランチがある場合は、git checkout origin/masterまたはgit checkout origin1/masterのようにリモート名を追加する必要があります

+0

上記の手順に従ったサブモジュールメソッドを使用しました... Repo Bをサブモジュールとして追加しましたが、作成したディレクトリは "component @ 65c69279bb2"でしたし、 ".gitmodules"フォルダも作成しました。そのフォルダを「コンポーネント」にリネームするだけでもいいですか?それは何に影響を与えますか?また、.gitmodulesフォルダを削除することはできますか?それはそこにある必要がありますか? – bschmitty

+0

上記のコメントでは、Repo Bの変更をRepo Aに提出していました。これは私が必要とするものです。コンポーネントフォルダが上にあるように名前を付けることは望ましくありません.gitmoduleファイルはそこになければなりませんそれと一緒に生きよう.thanks – bschmitty

+0

私はリモートオプションでそれをやらなければならないようだ。私はRepo A/component /にこのオプションを使ってすべてのブランチがあるのを見ています...上記のリンク(つまり、read-tree --prefix = ...)でステップと同じことを押しますか? – bschmitty

関連する問題