Gitリポジトリの2つのファイルに複数の変更を加えました(具体的には、brewに2つの数式を追加しました)。
変更を個別にコミットしました:
git commit file1
git commit file2
次に、GitHubへのプッシュを1回行いました。
git Push [email protected]:myname/homebrew.git
次に、アップストリームリポジトリに2つのプルリクエストを送信します。1つはfile1、もう1つはfile2です。これは可能ですか?
同じコミットで両方のファイルを変更した場合は、できません。これは不可能です。プッシュとプルはコミットレベルで動作します。それらは分割されません。
まだ変更を共有していない場合は、コミットを2つに分割し、それぞれにブランチを作成してから、それらのプルリクエストを開始できます。
これは多くの方法がある方法の1つですが、たとえば、次のようなことができます。
# make sure the commit in question is the most recent
# make branch to point to the previous commit, leaving the changes in your work tree
git reset HEAD^
# commit the changes to the first file
git add file1
git commit
# make a branch for the first commit
git branch first-branch HEAD^
# commit the changes to the second file
git add file2
git commit
# create and check out a branch for this commit
git checkout -b second-branch
# rebase the branch back, so that it doesn't include the first commit
git rebase --onto HEAD^^ HEAD^ second-branch
# point your master branch somewhere that makes sense - maybe before either branch
git checkout master
git reset --hard first-branch^
これにより、次のような履歴が残ります。
- x (master) - A (first-branch)
\
- B (second-branch)
ここで、Aが変更されたfile1をコミットし、Bが変更されたfile2をコミットします。
履歴が希望どおりになったら、2つのブランチを個別にプッシュして、必要な処理を実行できます。
git Push Origin first-branch second-branch
各ファイルを独自のブランチに配置します。ブランチごとにプルリクエストを生成できます。これにより、必要な処理を実行できます。
リビジョン全体(実際にはリビジョンに至るブランチ全体)のみをフェッチできますが、リポジトリから個々のファイルにアクセスできます。
git checkout <rev> -- <file>