1. ホーム
  2. git

[解決済み] 私のプルリクエストがマージされました、次に何をすべきですか?

2022-05-16 18:19:24

質問

最近、GitHubのプロジェクトに参加しました。私は以下のことを行いました。

元のリポジトリをフォークし、私のローカルマシンにクローンし、既存のバグを修正するためのブランチを作成し、そのブランチにあるバグを修正し、そのブランチを私のリポジトリにプッシュし、リポジトリの作者にプルリクエストを送り、私のリポジトリをマージしてもらいました。 修正 ブランチを master ブランチにマージするよう、リポジトリの作者にプルリクエストを送りました。

他の人のコードにコミットするのは初めてだったので、どうしたらいいのかわかりません。現在、私のプルリクエストは作者によって元のリポジトリ/プロジェクトにマージされています。

次に何をすればいいのでしょうか? ブランチを削除すべきですか? ブランチをマージすべきですか? 他に何かありますか?


追加情報です。

元のプロジェクトには1つのブランチがあります。

また、元のレポから最新のアップデートを取得するようにアップストリームを設定しています。 (私はこのようにしました) :

git remote add upstream https://path/to/original/repo.git

と、こんな感じで更新されるんです。

git fetch upstream

どのように解決するのですか?

次にすべきことは、新しい機能を提供したり、他のバグを修正したりして、それぞれの専用ブランチ (あなたのフォークにのみプッシュされます) に移動することです。

つまり、あなたのフォークは残りますが、あなたのフォーク内のブランチは行ったり来たりすることができます。

これ以上貢献するつもりがなければ、フォークを削除することもできますが、それは は 'あなたが貢献するリポジトリ' の対応するエントリを削除します。 .

より簡単です。

  • を削除します。 fix のブランチを削除します(実際は は削除されました。 ) をフォーク (およびローカルのクローンしたレポ: " を参照) に追加してください。 ローカルとリモートの両方で Git ブランチを削除する をご覧ください)。
  • git pull upstream master (もし master があなたの修正が統合されたブランチだった場合: マージは早送りされます): この時点ではリベースは必要ありません。
  • 更新したローカルブランチの上に修正ブランチを再作成します。 master (からの最新版を含む) upstream master ).

ただし、次のような場合は、提出する前に一歩を踏み出すことを忘れないでください。 未来 プルリクエストを送信する前に、あるステップを忘れないでください。

は、まず現在のブランチをリベースします ( fix ) を上流の目的ブランチ

( upstream はフォークした元のレポです: " を参照してください。 githubのoriginとupstreamの違いは何ですか? をご覧ください(")。

元のリポジトリ ("upstream") に何かを投稿し直す前に、あなたの作品が、その上にある 最新の の上にあることを確認する必要があります (または、プルリクエストが upstream レポに戻されます)。

例えば、" を参照してください。 githubの共有レポでプルリクエストを管理するためのワークフロー "を参照してください。

言い換えると upstream は、あなたが修正に追われている間にも進化 (新しいコミットがそれにプッシュされること) することができるのです。あなたは、上流からの最新の作業の上で自分の修正を再生し、自分のコミットがまだ最新の upstream .


OP サントシュ・クマール コメントで :

から引き出してマージしました。 upstream を master にプルしてマージしました。

最近のプルリクエスト以降に新しい修正を行っていない場合は、上記 (削除して新しいブランチを再作成する) を参照してください。 fix の上に、更新した master ).

もしプルリクエスト以降に何か作業をしたのであれば、私なら upstream を作りたいのであれば 新しい をプルリクエストします。私なら とリベース :

git pull --rebase upstream master

こうすることで、新しいローカルでの作業はすべて、直近の upstream master コミット(ローカルリポジトリに取り込まれた)、仮に master が私の将来のプルリクエストを統合するターゲットブランチであると仮定します。

それから、私のローカルでの作業を ' origin これは、GitHub 上で私がフォークしている upstream .

そして、GitHub 上の私のフォークから、安全にプルリクエストを行うことができ、新しいコミットを追加するのは upstream の新しいコミットをマージすることで、マージの解決は必要ありません。 upstream レポにマージすることは、単純な早送りのマージを意味します。


A git pull --rebase をリベースするブランチを指定せずに、(現在チェックアウトされている) fix ブランチは動作しないでしょう。

その( git pull --rebase )に書いてある。

You asked to pull from the remote '`upstream`', but did not specify a branch. 

<ブロッククオート

最後にmasterを追加すればいいのでしょうか?そして、これは何をするのでしょうか? fix ブランチは削除されるのでしょうか?

はい、プルリクエストの対象となるブランチを指定することができます。 master '.

これでは、あなたの fix ブランチは削除されませんが、上流にある master ブランチを再生しますが、あなたのレポで取得した上流の