2012-09-30 7 views
39

私はGitHubからフォークされたリポジトリをいくつか変更しました。しかし、あるコミットでは、いくつかのファイルが変更されて、プル・リクエストを提出して、他の変更されたファイルをリクエストから除外します。特定のファイル/コミットのみのプルリクエスト

プルリクエストをマージするすべてコミットするか、このコミットを分離するために特別な処理を行う必要がありますか?

+1

これは関連している可能性があります:[特定のファイルへの変更のみを選択する方法?](http://stackoverflow.com/q/5717026) – jww

+2

@jww年後に 'git cherry-pick'になっています絶対に貴重です。私がやったよりも早くそれを拾っていたはずです。 – Qix

答えて

28

プル要求がコミット全体から成っているため、このコミットを、プル要求に入れる変更を含むコミットと別の変更を保持する別のコミットに分割する必要があります。これを行うには、git rebase -iが必要です。詳しくは、How can I split up a Git commit buried in history?を参照してください。

コミットを分割したら、トピックブランチに含めるものを移動します(たとえば、How to move certain commits to another branch in git?を参照)。ただし、プル要求を行うコミットが連続しているかどうかによって異なります。

最後にGithubにプッシュして、トピックブランチからプルリクエストを作成することができます。

+3

記録のために、 'git cherry-pick'は非常に貴重なツールです。 – Qix

+3

これは受け入れられた答えです。どこで正確に実行するステップがあるので、複数のファイルを変更するプル要求で1つのファイルに変更を加えることができますか? – jww

+0

あなたがリクエストをマージしてリクエストしていないときはどうなりますか?このツールはとても駄目です。 – jww

11

分岐要求をマージします。だから、プルリクエストのためにいくつかのものを分離したいのであれば、それらの変更を別々のブランチに入れるのが最善です。

有利なのは、そのブランチに新しい変更をプッシュすることでプル要求を変更できることです(既にプッシュされたコミットを変更する必要がある場合は、-fを押しても同じです)。

関連する問題