プルリクエストを更新するには
プルリクエスト(ポイント#1)を更新するには、プルリクエストと同じブランチをチェックアウトして再度プッシュするだけです。
cd /my/fork
git checkout master
...
git commit -va -m "Correcting for PR comments"
git push
オプション-コミット履歴のクリーニング
リポジトリの履歴をクリーンにするためにコミットをまとめるように求められる場合があります。または、プルリクエストの「メッセージ」の邪魔になる中間コミットを削除したい場合があります(ポイント#2)。たとえば、コミット履歴が次のようになっている場合:
$ git remote add parent git@github.com:other-user/project.git
$ git fetch parent
$ git log --oneline parent/master..master
e4e32b8 add test case as per PR comments
eccaa56 code standard fixes as per PR comments
fb30112 correct typos and fatal error
58ae094 fixing problem
物事を一緒に押しつぶして、単一のコミットとして表示されるようにすることをお勧めします。
$ git rebase -i parent/master
これにより、プルリクエストの履歴を書き換える方法を選択するように求められます。エディタには次のように表示されます。
pick 58ae094 fixing actual problem
pick fb30112 correct typos
pick eccaa56 code standard fixes
pick e4e32b8 add test case as per PR comments
前のコミットの一部になりたいコミットについては、ピックをスカッシュに変更します。
pick 58ae094 fixing actual problem
squash fb30112 correct typos
squash eccaa56 code standard fixes
squash e4e32b8 add test case as per PR comments
そして、エディタを閉じます。次に、Gitは履歴を書き換え、1つの結合されたコミットのコミットメッセージを提供するように求めます。それに応じて修正すると、コミット履歴が簡潔になります。
$ git log --oneline parent/master..master
9de3202 fixing actual problem
それをあなたのフォークに押してください:
$ git push -f
Counting objects: 19, done.
Delta compression using up to 4 threads.
Compressing objects: 100% (5/5), done.
Writing objects: 100% (11/11), 978 bytes, done.
Total 11 (delta 9), reused 7 (delta 6)
To git@github.com:me/my-fork.git
f1238d0..9de3202 HEAD -> master
プルリクエストには、以前に複数のコミットに分割されたすべての変更を組み込んだ単一のコミットが含まれます。
パブリックレポの履歴を変更することは悪いことです
履歴を書き換えgit push -f
て、他の誰かがすでに複製している可能性のあるブランチで使用することは悪いことです。これにより、リポジトリの履歴とチェックアウトの履歴が分岐します。
ただし、リポジトリに統合することを提案している変更を修正するためにフォークの履歴を修正することは良いことです。そのため、プルリクエストから「ノイズ」を押しつぶす予約はありません。
枝に関するメモ
上記では、プルリクエストがmaster
フォークのブランチからのものであると示していますが、必ずしも問題はありませんが、これが標準的な手法である場合、リポジトリごとに1つのPRしか開くことができないなどの特定の制限があります。 。ただし、提案する個々の変更ごとにブランチを作成することをお勧めします。
$ git branch feature/new-widgets
$ git checkout feature/new-widgets
...
Hack hack hack
...
$ git push
# Now create PR from feature/new-widgets