34

github でリポジトリをフォークしました。いくつかの変更を加えて、プルリクエストを行いました。

今、私は他のいくつかの変更を加え、新しいプル リクエストを実行したいと考えていますが、プル リクエストを実行する前のプレビュー画面には、古いコミット (既に受け入れられているもの) も表示されます。

フォークされたリポジトリのマスター ブランチで最新のコミットのみを選択して、そのコミットのみでプル リクエストを実行できるようにするにはどうすればよいですか?

4

2 に答える 2

47

同僚からのこの回答は私の問題を解決しました:

git checkout -b NEW_BRANCH_NAME LAST_COMMIT_NAME_BEFORE_THE_ONE_WANTED
git cherry-pick COMMIT_NAME_WANTED
git push origin NEW_BRANCH_NAME

次に、GitHub で、作成した新しいブランチのプル リクエストを行うことができます。

アップデート

私が最初に git を使い始めたとき、私はこの質問をして答えました。それについて詳しく知ったので、この回答を拡大したいと思います。

フォークを使用する場合、元のリポジトリに関してフォークを最新の状態に保ちたいと思うでしょう。したがって、これらは私が今日従う手順です。

git remote add upstream GIT_URL_OF_THE_ORIGINAL_REPO

upstreamこれで、そのレポを指すという参照が作成されました。デフォルトではorigin、この場合、フォークを指す別の呼び出しも必要です。upstreamそして、origin人々が通常これらの参照に名前を付ける方法ですが、好きな名前を使用できます。

次に、最新の変更を取得する必要があります。

git fetch upstream

次に、フォークを変更して更新する場合は、次のようにしますupstream

git checkout master //checkout your master branch
git merge upstream/master //merge changes from the master branch in upstream into the branch you checked out (master)
git push origin master //if you want to push your updated master to your remote fork

さて、元の質問に答えるために、新しい PR を提出したい場合、今日私がすることは次のようになります

git fetch upstream //get the latest changes from the original repo
git checkout -b my_new_feature upstream/master //create a new branch, starting from the master in the original repo
git cherry-pick WHATEVER_COMMIT_I_WANT //select the commit I want and add it to this new branch
git push origin my_new_feature //push a new branch to my fork

my_new_feature次に、ブランチの新しい PR をリクエストします。

ファイルgit cherry-pick WHATEVER_COMMIT_I_WANTを変更/追加してgit add FILENAMEから、git commit -m "Fixing some stuff".

于 2011-04-06T21:18:49.070 に答える
4

コミットが最初のコミットとは無関係であると仮定すると、コミットを別のブランチ(最初のコミットのセットの前に分岐する)に配置することもできます。次に、別のブランチをプルリクエストのターゲットにすることができ、2番目のコミットセットのみが含まれます。

于 2011-04-06T05:36:34.177 に答える