web-dev-qa-db-ja.com

githubでプルリクエストにプッシュするにはどうすればよいですか?

これを.git/configファイルに追加しました:

fetch = +refs/pull/*/head:refs/remotes/Origin/pr/*

これにより、プルリクエストの差分をプルダウンできますが、チェックアウトすると、実際には同じ名前のブランチが作成されます。 pr/2にプッシュして、pr/2という名前の新しいブランチに移動するのではなく、実際にプルリクエストに移動させる方法はありますか?

33
lobati

プルリクエストは、特定のブランチをマージするためのリクエストです。つまり、プルリクエストが開かれた後にブランチに対して行われたコミットは、最終的なマージに含まれます。

プルリクエストでマージを求めているブランチにアクセスできる場合は、そのブランチにコミットすると、プルリクエストが変更内容で更新されます。

例:

pull/3はhotfixmasterにマージすることを要求しています

git fetch
git checkout hotfix
git pull Origin hotfix

変更する

git add .
git commit -m "changes!"
git Push Origin hotfix

これで、コミットがプルリクエストに表示されます。

27
Ross

これが、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
18

良い質問。しかし、あなたができたら私は驚かれます:

$ 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
3
akostadinov

チェックアウトしたPRに変更をマージしようとすると、GitHubデスクトップクライアントは、元のPRと変更を含む別のプルリクエスト(PR)を作成します。

私はマスターブランチからこれを行いましたが、おそらく別のブランチを作成してから、プルリクエストへのプルリクエストを作成できます。これらの豪華なGit GUIを使用すると、すべてが魔法のようになります。

1
carlin.scott