2016-10-12 11 views
2

git subtreeのローカル変更を作成し、その変更をサブツリーのレポのブランチにプッシュして、プルリクエストを作成してその変更をマージする方法を教えてくださいサブツリーのmasterに分岐しますか?gitのサブツリーからプルリクエストの分岐にプッシュ

私は2つのレポ、projectprotocolsを持っており、どちらも私の管理下にあるとします。

ステップ1:

$ cd protocols 
$ echo "foo" > some_file 
$ git commit -a -m "added foo" 
protocolsサブツリー内にあるファイルへ projectレポでいくつかの変更を行います。 projectレポ

$ git remote add protocols [email protected]:corp/protocols.git 

$ git remote 
origin 
protocols 

$ git subtree add --prefix=protocols protocols master --squash 
... 
From bitbucket.org:corp/protocols 
* branch   master  -> FETCH_HEAD 
* [new branch]  master  -> protocols/master 
Added dir 'protocols' 

ステップ2にsubtreeようprotocolsを追加

手順3:にブランチを作成する私のローカル変更をproject/protocolsサブツリーからその支店にプッシュ

??

私は私のsubtree変更が正常リモートprotocolsレポでブランチにプッシュされたら...

これを達成するための最善の方法に関してはわからないよ、私はそれらをマージするために、プルリクエストを作成することができますprotocolsmasterに戻ります。

質問:

  • 私はprotocolsのローカルコピーを持っています。リポジトリに変更してブランチを作成してからprojectに戻ってsubtreeローカルのprotocolsリポジトリへの変更をプッシュする必要がありますか?

  • 私はsubtreeが私ローカルprotocolsレポで(まだ未作成のような)新しいブランチに直接を変更するプッシュすることはできますか?

  • 私はsubtreeリモートprotocolsレポで(まだ未作成のような)新しいブランチに直接を変更するプッシュすることはできますか?

  • これは推奨されるワークフローですか?

答えて

3

指定し、プロトコルのレポでブランチを作成して、単一のコマンド、subtree pushであなたはそれを達成することができます

そのブランチにプロジェクト/プロトコルのサブツリーから、私の地元の変更をプッシュ新しいリモートブランチ:

$ git subtree push --prefix=protocols protocols feature 

これにより、新しいブランチ、featureが作成されます。リモートリポジトリprotocols

featureブランチをmasterブランチにマージするプルリクエストを作成できるようになりました。分岐がバックマージされた後

は、あなたがマージその後、これは別のものを作成しますpull

$ git subtree pull --prefix=protocols protocols master --squash 

--squashと一つに押しつぶさprotocolsレポ内のすべての変更をコミット使用してサブツリーを更新し、することができますあなたのprojectレポ

ノートにマージするためにコミットが、この方法に若干の癖があり、それは今protocolsレポへの変更が含まれているあなたのprojectレポに2つのコミットがあるでしょうです。

  • 原稿(--squashを使用したと仮定すると、通常、他のプロトコルの変更に伴って、)後続のサブツリープルにより作成されたコミットprojectレポのprotocolsサブツリー
  • てなさコミット
+0

Iは、明示的な 'gitの使用subtree split'とそれに続く 'git push'をサブツリーの元のリポジトリに追加します。これは "うまく"機能しましたが、孤立したブランチがマスターに統合できなくなったため、提案したように「今すぐプルリクエストを作成できません。私が逃しているものは何ですか?ありがとう! – yoyo

+0

@yoyo明示的な「サブツリー分割」を使用したことはありません。私は恐れていますので、助けてください、ごめんなさい! –

関連する問題