2016-09-30 1 views
-1

私はdevブランチからfeatureブランチにブランチしてコミットしました。さて、featureブランチをdevブランチにマージするリクエストを送信すると、枝が自動的にマージされないことがgithubに通知されます。 featureブランチを「自動的にマージできる」状態にするために何をする必要がありますか?プルリクエストを「自動的にマージできる」状態にする方法はありますか?

何私が現在やっていることは次のとおりです。

  1. アウトdev
  2. マージfeature
  3. 紛争の原因となった行を覚えておいてください
  4. feature分岐が
  5. 手動で各ラインを元に戻すチェックアウトdev支店の状態へ
  6. パッチをコミットしてプッシュする

これは多くの手作りのようです。だから私はこれが何とか簡単化できるかどうか疑問に思った?私は(分岐が回帰を導入しているのトラックを維持し、他の機能に分離してそれぞれの新しい機能をテストする目的のために)develop枝から分離された私のfeatureブランチの変更を維持したいと思います

UPDATE

マインド。だからdevfeatureにマージ/リベースすると問題が解決するが、それはdevのすべての変更をfeatureに持ち込み、分離が緩くなる。

答えて

3

少数の仮定:あなたが出てdevから枝を取り、featureそれと呼ばれ、あなたがfeaturefeatureあなたのブランチ

devにをマージする競合が自動的にgitでは解決できない dev branch because someone has already made changes to dev`にマージ可能ではありません。このシナリオでは

、あなたが

  1. リベースを取ることができる2つの手法がある - この場合、あなたは
    • チェックアウトdev
    • 以下の手順は
    • リモートから引っ張って取る続きますチェックアウト feature
    • git rebase dev - 内部では、この1)ははすべてdev3をコミット適用)featuredevが同じ2だったところ、最後の を超えたすべてのコミットはコミット削除)一つ一つがすべてfeatureコミットを適用する - と 競合が発生したときのように、Gitはプロンプトを表示します紛争を解決する。最後のステップ は、すべてのコミットが featureブランチに正常に適用されるまで繰り返されます。
    • リモートfeatureブランチに対するすべての変更
    • は、これは私が常に従う一つであり、あなたが親ブランチからプルを取っておくことをお勧めし

:-)プルリクエストに送るプッシュ競合を避けるため定期的にgit commit historyの中にダイヤモンド構造を作ります。

  1. 2つ目はマージですが、私はリベースを使用してよりきれいに見つけて、それを常に使用します。
+1

オプション2:おそらく、「dev」を「feature」にマージすることを意味します。これは明確にする必要があります。 'dev'を' feature'にマージすると、あなた自身で矛盾を解決し、矛盾することなく 'feature'を' dev'にマージすることができます。しかし、これは歴史を汚く見せます。理想的には、 'feature'を' dev'にマージするときに衝突を解決することができます。 –

+0

'feature'に' dev'をマージする(または 'feature'に' dev'をリベースする)ことで、 'feature'ブランチの隔離が変わってしまいます。これは避けようとしています。 – Dziamid

+0

gitにバイナリ検索機能があり、バグを導入したコミットを識別するのに役立ちます。 – prabodhprakash

関連する問題