プルリクエストがGithubでホストされている私のレポに届きます。デフォルトでは、master
ブランチにマージされます。
どのブランチに変更をマージするかを変更する方法はありますか?
2016年8月15日現在 GitHubでは、GUIを介してプルリクエストのターゲットブランチを変更できます。タイトルの横にある[Edit
]をクリックし、ドロップダウンからブランチを選択します。
これで、オープンプルリクエストのベースブランチを変更できます。プルリクエストを作成した後、プルリクエストの変更が別のブランチと比較されるように、ベースブランチを変更できます。正しいベースブランチを使用して新しいプルリクエストを開くのではなく、元のプルリクエストのベースブランチを変更することで、貴重な作業と議論を続けることができます。
他の回答で言及されているハブgemを使用する代わりに、 コマンドラインを使用してローカルにプルリクエストをマージします を使用します。
$ git fetch Origin
$ git checkout *target_branch*
$ git merge pr/XXX
$ git Push Origin *target_branch*
上記のコマンドは、最初に.git/config
ファイルに次の行を追加した場合にのみ直接機能します。
fetch = +refs/pull/*/head:refs/remotes/symbolic_name_Origin_or_upstream/pr/*
これは、プルリクエストをダウンロードできるようにすることです[〜#〜] all [〜#〜]。それは巨大なリポジトリでは望ましくない可能性があるため、GitHubはgit fetch Origin pull/ID/head:BRANCHNAME
構文を使用するように命令を変更しました。これにより、構成ファイルの変更が回避され、その単一プル要求のみがダウンロードされます。
ダニエルピットマンのソリューションには何の問題もありませんが、これらのマージを「早送りなし」、つまり、ステップ番号3を次のように変更します。
git checkout ${target_branch} && git merge --no-ff ${remote}/${branch}
--no-ff
を使用すると、履歴が読みやすくなります。 $n
コミットは$branch
からのものであることが明確に示されます。また、そのブランチで行われた何かを元に戻す必要がある場合にも、作業が楽になります。
Eoinocの質問に答えて、追加のヒントを提供するには:
マージを行った後、git cliはメッセージを書くように促します。一般的には、一般的なメッセージが表示されます。
リモート追跡ブランチ「user/their-branch」をブランチにマージします
必ずそのメッセージを編集し、プルリクエスト番号への参照を含めてください。つまり:(プルリクエスト番号が123であると仮定)
リモート追跡ブランチ「user/their-branch」をブランチにマージします
refs#123何でも解決...
そのため、次回githubのissue/pull-requestsページにアクセスして、その特定のプルリクエストを確認すると、マージした場所をコミットするためのリンクを含むメッセージが表示されます。
ここに私が意味するもののスクリーンショットがあります。
既存のものではないため、既存のプルリクエストを変更することはできませんが、関連するソースリポジトリがまだ存在する場合は簡単に新しいものを作成できます。
サブミッターのリポジトリに移動し、同じコミットを使用してリポジトリに新しいプルリクエストを作成しますが、正しいターゲットブランチを正しく設定していることを確認してください。
次に、独自のリポジトリに戻り、新しいプルリクエストを受け入れます。出来上がり!
これを行うには、リポジトリのホームページに移動し、ブランチをクリックして、デフォルトのブランチをマスターから他の何か、この場合は「dev」に変更します。
その後、誰かがプルリクエストを作成するたびに、merge
ボタンはマスターではなく「dev」にリクエストを自動的にマージします。