これを.git/config
ファイルに追加しました:
fetch = +refs/pull/*/head:refs/remotes/Origin/pr/*
これにより、プルリクエストの差分をプルダウンできますが、チェックアウトすると、実際には同じ名前のブランチが作成されます。 pr/2
にプッシュして、pr/2
という名前の新しいブランチに移動するのではなく、実際にプルリクエストに移動させる方法はありますか?
プルリクエストは、特定のブランチをマージするためのリクエストです。つまり、プルリクエストが開かれた後にブランチに対して行われたコミットは、最終的なマージに含まれます。
プルリクエストでマージを求めているブランチにアクセスできる場合は、そのブランチにコミットすると、プルリクエストが変更内容で更新されます。
例:
pull/3はhotfix
をmaster
にマージすることを要求しています
git fetch
git checkout hotfix
git pull Origin hotfix
変更する
git add .
git commit -m "changes!"
git Push Origin hotfix
これで、コミットがプルリクエストに表示されます。
これが、GitHubのプルリクエストの「コマンドラインを介したマージ」の手順です(私はまともですが、もう1人はosprです)。
ステップ1:プロジェクトリポジトリから新しいブランチをチェックアウトし、変更をテストします。
git checkout -b ospr-image-rendering master
git pull https://github.com/ospr/FDWaveformView.git image-rendering
ステップ2:変更をマージし、GitHubで更新します。
git checkout master
git merge --no-ff ospr-image-rendering
git Push Origin master
ここに、変更を上流(?)にPR発信者に送信する追加のステップがあります。
git Push https://github.com/ospr/FDWaveformView.git ospr-image-rendering:image-rendering
良い質問。しかし、あなたができたら私は驚かれます:
$ cat .git/refs/pull/upstream/839
f8a9f492098e154b4a8258a941af47c9ca017ada
この参照を好きなように変更できるとしても、githubには簡単に変更できない他のメタデータがあります。そのため、ブランチプルへのより良いプッシュが作成されました。
$ git Push [email protected]:owner/repo.git HEAD:target-branch
コマンドラインからのgithubのやり取りを簡単にするには、githubコマンドラインラッパーを参照してください。 https://hub.github.com/
更新:PRが基づくフォーク/ブランチにプッシュする場合、既存のプルリクエストにプッシュできます。多くの場合、レポの設定によっては可能です。
git Push [email protected]:username/repo-name.git localbranchname:remotebranchname
または、ローカルリポジトリでremote
としてフォークを追加した場合は、次のようになります。
git Push remotename localbranchname:remotebranchname
チェックアウトしたPRに変更をマージしようとすると、GitHubデスクトップクライアントは、元のPRと変更を含む別のプルリクエスト(PR)を作成します。
私はマスターブランチからこれを行いましたが、おそらく別のブランチを作成してから、プルリクエストへのプルリクエストを作成できます。これらの豪華なGit GUIを使用すると、すべてが魔法のようになります。