161

Github でホストされている私のリポジトリにプル リクエストが届きます。デフォルトでは、masterブランチにマージされます。

変更がマージされるブランチを変更する方法はありますか?

4

6 に答える 6

135

2016 年 8 月 15 日現在、 GitHub では GUI を介してプル リクエストのターゲット ブランチを変更できます。Editタイトルの横にある をクリックし、ドロップダウンからブランチを選択します。

スクリーンショット

オープン プル リクエストのベース ブランチを変更できるようになりました。プル リクエストを作成したら、ベース ブランチを変更して、プル リクエストの変更を別のブランチと比較することができます。正しいベース ブランチで新しいプル リクエストを開くのではなく、元のプル リクエストのベース ブランチを変更することで、貴重な作業と議論を続けることができます。

于 2016-08-16T23:30:29.833 に答える
55

送信者は、プル リクエストを発行するときにそれを変更できますが、発行した後は変更できません。

一方、ブランチとプッシュを手動でマージすることもできます。これは、私が半定期的に、誤ったターゲットのプル リクエストに対して行っています。

プル リクエストのコンポーネントを操作する際に、 hubgemが役立つ場合があります。

その宝石は、次のような手動プロセスをまとめます。

  1. フォークのリモートをローカル チェックアウトに追加します。
  2. そのリモートを取得します。
  3. git checkout ${target_branch} && git merge ${remote}/${branch}
  4. git push origin ...
于 2012-02-03T22:14:34.980 に答える
15

An alternative to using the hub gem mentioned by other answers is to use the command line to merge locally pull requests, which allows you to do:

$ git fetch origin
$ git checkout *target_branch*
$ git merge pr/XXX
$ git push origin *target_branch*

The commands above only work directly if you first add the following line to your .git/config file:

fetch = +refs/pull/*/head:refs/remotes/symbolic_name_origin_or_upstream/pr/*

What that does is allow you to download ALL pull requests. Since that may not be desired for huge repos, GitHub modified the instructions to feature the git fetch origin pull/ID/head:BRANCHNAME syntax, which avoids modification of the configuration file and only downloads that single pull request.

于 2014-01-13T21:29:29.780 に答える
9

既存のプル リクエストは自分のものではないため変更できませんが、関連するソース リポジトリがまだ存在する場合は、新しいプル リクエストを簡単に作成できます (他の人のものであっても可能です)。

サブミッターのリポジトリに移動し、同じコミットを使用してサブミッターのリポジトリに新しいプル リクエストを作成しますが、正しいターゲット ブランチを正しく設定していることを確認してください。

次に、自分のリポジトリに戻り、新しいプル リクエストを受け入れます。出来上がり!

于 2014-09-11T20:37:23.763 に答える
8

Daniel Pittman のソリューションには何も問題はありませんが、これらのマージを「早送りしない」、つまりステップ 3 を次のように変更するものとして扱います。

git checkout ${target_branch} && git merge --no-ff ${remote}/${branch}

を使用--no-ffすることで、履歴が読みやすくなります。$nコミットが からのものであることが明確に示さ$branchれ、そのブランチで行われたことを元に戻す必要がある場合にも、作業が楽になります。

eoinoc の質問にも答えて、追加のヒントを与えるには:

マージを行った後、git cli はメッセージを書くように促します。一般に、次のような一般的なメッセージが表示されます。

リモート追跡ブランチ 'user/their-branch' を your-branch にマージします

必ずそのメッセージを編集し、プル リクエスト番号への参照を含めてください。つまり: (プルリクエスト番号が 123 であると仮定)

リモート追跡ブランチ 'user/their-branch' を your-branch にマージします

refs #123 何でも解決する...

そのため、次に github の問題/プル リクエスト ページにアクセスしてその特定のプル リクエストを確認すると、マージを行ったコミットへのリンクを含むメッセージが表示されます。

ここに私が意味するもののスクリーンショットがあります。

ここに画像の説明を入力

于 2013-11-25T04:50:47.807 に答える
6

これを行うには、リポジトリのホームページに移動し、ブランチをクリックして、デフォルトのブランチを master から別のもの (私の場合は「dev」) に変更します。

その後、誰かがプル リクエストを作成するたびに、mergeボタンはリクエストを master ではなく「dev」に自動的にマージします。

ここに画像の説明を入力

于 2015-07-09T07:42:47.473 に答える