プルリクエスト中にブランチの名前を変更する


101

Githubでは、プロジェクトに機能を追加するプルリクエストを作成できます。1つの貢献は、要求が受け入れられた場合にプロジェクトのマスターブランチ(または類似のブランチ)にマージされるブランチ上にある必要があります。

今、私はGithubでプルリクエストを送信し、私の貢献はというブランチにありpatch-1ます。ブランチの名前をローカルで変更できます

git branch -m patch-1 newname

原則として、この回答にある指示に従って、Githubのフォークされたリポジトリで名前を変更することもできます。これは実際にpatch-1は、私の場合は古いブランチを削除して、別の名前で再プッシュすることで行われnewnameます。

patch-1プルリクエストを構成するときに、Github上のフォークされたリポジトリのブランチの名前を変更することはできますか?それともプルリクエスト管理で問題が発生しますか?

ブランチがプルリクエストであるときに、Githubのフォークされたリポジトリのブランチの名前を変更する方法はありますか?

回答:


117

指定したリンクで示されているように、gitでリモートブランチの「名前を変更」すると、実際にはブランチが削除され、同じコミットハッシュで新しい名前の新しいブランチがプッシュされます。ブランチpatch-1のプルリクエストを開いている場合、そのブランチを削除すると、プルリクエストは閉じられます。

したがって、ブランチを削除してプルリクエストを削除しない限り、プルリクエストを開いた状態でブランチの名前を変更することはできません。ただし、それを妨げるものはなく、新しいブランチを新しい名前でプッシュし、新しいプルリクエストを作成します。


186
そうしない理由の1つは、既存のPRに関する議論を失うことです。
ジョニー

6
PRでソースブランチの名前を変更する際に、このような厳しい制限が適用される理由がわかりません。同じ厄介な動作がbitbucketにも存在します。別のアプローチは、PRを編集して、ソースブランチを別のブランチに変更することです。「ソースブランチを変更すると、それはとにかく新しいPRになる」と言う人もいるかもしれません。技術的にはそうですが、開発者がまったく異なるブランチから上流を設定してを実行することを妨げるものは何もありませんgit push -f。PRは完全に新しいコードで更新されていますが、それでも「同じ」PRです。
L.ホランダ

31

短い答え:

番号

代替アプローチ:

  1. 新しい(名前を変更した)ブランチで新しいPRを開く
  2. 新しいPRを参照している古いPRを閉じます(例:#new_pr_idのために閉じられます)
  3. 新しいPRの説明を変更します(例:置き換え#old_pr_id)
  4. (オプション)古いPRに関する関連ディスカッションについてコメントする

注意:

ビルドシステムにはチケットIDで終わるブランチの名前が必要だったため、(PRを構成する)リモートブランチの名前を変更する必要がありました。ただし、PRは(仕様からの)公式チケットの作成前に開かれ、貴重な議論が含まれていました。説明されたアプローチは、ビルドシステムを機能させる唯一の方法であり、情報を失うこともありませんでした(ただし、追跡するための追加の手順がありました)。


9
通常、ブランチはマージ後に削除されるため、履歴上の議論を追跡する目的で古いPRを参照する新しいPRのオーバーヘッドを追加するよりも、名前が不正確であることを「許容」する方がよいと思います。
Neo
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.