1

最初にプロジェクトをフォークして環境をセットアップしたとき、これがありました。

> git branch -a

remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/upstream/master

上流プロジェクトへの「プッシュ」権限がありません。フォークからプル リクエストを送信する必要があります。

1 週間後、アップストリームへの特定の機能強化に取り組むための新しいブランチが作成されました。チームは、このブランチで何週間も作業する可能性があります。

remotes/origin/HEAD -> origin/master
remotes/origin/master
remotes/upstream/new-project-feature
remotes/upstream/master

このブランチにコードをセットアップして送信する適切な方法は何ですか? これが私がやったことです。それは適切なことでしたか?

git branch new-project-feature
git checkout new-project-feature
git rebase upstream/new-project-feature
.. code changes
.. commit
git push origin HEAD:new-project-feature
.. go to github and send the pull request.

親プロジェクトは、プル リクエストをその new-project-feature ブランチにマージすることをどのように認識していますか?

4

1 に答える 1

0

プルリクエストの背後にある考え方は次のとおりです。

  • アップストリーム ブランチにマージしたい小規模な機能強化に取り組んでいる
  • その拡張機能をフォーク ( origin) にプッシュし、そこからプル リクエストを行います。

フォーク

しかし:

その拡張は、ターゲット ブランチではなく専用のブランチで行う必要があります。 つまり、 inまたは in ではありません。これらは「ターゲット」ブランチであり、フォーク内で、レポをミラーリングしたり、 「リモート トラック」または.
masternew-project-featureupstreamupstream/masterupstream/new-project-feature

したがって、貢献したい小さな変更ごとに 1つまたは複数のnew-project-featureブランチを作成し、その 1 つの小さなブランチ " small_change" をプッシュし、プル リクエストを に送信する必要がありupstream/new-project-featureます。

を定期的にプルして、最新のアップストリーム/new-project-feature でupstreamローカルを更新できます。次に、更新されたブランチの上に「small_changes」ブランチをリベースして、作業を続ける ことができます。new-project-feature
new-project-feature

フォークからプル リクエストを作成した後new-project-featureでアップストリームが変更された場合は、次の手順を実行するだけで済みます。

  • new-project-featureブランチをローカルに取得して更新する
  • small_changenew-project-feature の上にブランチをリベースします
  • すべてがまだ機能していることを確認してください
  • git push --force origin small_change

最後の強制プッシュにより、プル リクエストが自動的に更新されます。2 回目のプル リクエストを行う必要はありません
詳細については、「Github プル リクエストの実行方法」を参照してください。

于 2013-08-30T06:27:59.047 に答える