36952


Git でブランチAを作り、プルリエクストを送ったとします。  
ブランチA がマージ待ちの状態で、Aをベースに新たにブランチBを切って機能を付け加えたい場合、どのような運用がベターでしょうか。

  * AをベースにブランチBを作成して開発、プルリクエストを送る(BのプルリクにはAのコミット履歴も乗ってしまうが、masterとのマージ作業を省略できる)

  * master から B を作成して開発、Aが master にマージされた後、 origin/master を B にマージしてプルリクエストを送る

よろしくお願いします。


CC BY-SA 3.0
2017-07-25T23:08:58.993
36677
2017-08-04T23:34:27.147
2017-07-25T23:47:44.000
24577
24577
question
git github
Github でのプルリクエストのマージ待ちの際の良い運用について


ブランチAに依存した機能をつかってブランチBを作りたい、ということですね。  
後者＋A->Bへのマージを入れると良いと思います。

> master から B を作成して開発、Aが master にマージされた後、 origin/master を B にマージしてプルリクエストを送る

ブランチからブランチを作ると樹形図が複雑になってしまうので、プルリクを処理する人が追いかける人の負担となる場合が多いです。  
ただこのやり方でも樹形図が回り込むような形になってしまいます。

Gitの運用ですと幾つかのモデルケース(開発フロー）があるのでそちらを使ってみてアレンジしていく、という方法がお勧めです。（すでにご存知でしたらすみません。

  * git-flow
  * GitHub flow
  * Hg flow

ご参考までに。


CC BY-SA 3.0
2017-07-26T00:09:31.013
36678
2017-07-28T12:31:45.913
2017-07-28T12:31:45.913
24578
24578
36677
answer


> AをベースにブランチBを作成して開発、プルリクエストを送る(BのプルリクにはAのコミット履歴も乗ってしまうが、masterとのマージ作業を省略できる)

自分はこの方法に近い形で運用しています。  
ただし、Aがmasterにマージされるまでは、Bのプルリクはしないようにしています（上記のようにAのコミットが混入するため）  
できればBはpushもしない方がいいです。そしてAがmasterにマージされたら、Bをrebaseしてから、pushとプルリクをしています。こうすると樹形図もシンプルになります。

この方法を使えば、Aがプルリク待ちでもAのコードをベースに開発の続きをすることができると思います。  
まぁ、なるべくプルリク待ちで作業がストップしないような開発体制にすることも大切ですね


CC BY-SA 3.0
2017-08-04T14:20:42.663
36952
2017-08-04T23:34:27.147
2017-08-04T23:34:27.147
19633
19633
36677
answer