web-dev-qa-db-ja.com

Bitbucketでマージされたプルリクエストを元に戻す

プルリクエストを作成し、それを間違ったブランチにマージしました。どうすれば元に戻すことができますか?

ここまで見てきたところでは、宛先ブランチをハードリセットすることはできますが、Originリポジトリのプルリクエストはどうでしょうか。

Bitbucketを使用していて、SourceTreeからプル要求を作成しました(Bitbucketページを開きます)。

作業中のブランチは3つあります:masterdev、およびcreate-aliascreate-aliasdevからセットアップされ、devmasterからセットアップされました:master -> dev -> create-alias。問題は、create-aliasからプルリクエストを作成し、masterではなくdevにマージしたことです。

私は今create-aliasブランチに取り組んでいます。 create-aliasの最後のコミットは6ee20f9であり、masterのマージされたコミットはbe36f72です。

誰がそれを元に戻すかについて少し書き留めていただけますか?

これまでのところ、私は理解することができました:

  1. masterのチェックアウト。
  2. -m 1 6ee20f9を元に戻します。
  3. 押す。
  4. create-aliasをチェックアウトし、作業を続けます。

そうじゃない?

34
Jordi

残念ながら、この記事の執筆時点ではBitbucketには「プルリクエストを元に戻す」機能はありませんが、 機能リクエストが存在します です。

:続行する前に、作業コピーがクリーンであり、コミットされていないまたはプッシュされていない変更がないことを確認してください。

そのため、Gitでマージを元に戻す必要があります。まず、マージコミットのSHAハッシュを見つけます。

コマンドラインでは、これは次のとおりです。

git checkout <branch>
git pull
git log

次に、マージコミットを取り消してプッシュします。

git revert -m 1 <SHA-1>
git Push

SourceTreeでは、まず問題のブランチをチェックアウトしてから、Pullをチェックアウトします。ログウィンドウでマージコミットを見つけて右クリックし、SHA-1をクリップボードにコピー...をクリックします。次に、アクション->ターミナルで開くに進みます。ターミナルが開いたら、次を入力します。

git revert -m 1 <SHA-1 (from clipboard)>
git Push

残念ながら、SourceTreeにはマージを右クリックして元に戻す方法はありませんが、 機能要求が存在します です。

63
Will

Bitbucketには、プルリクエストに「元に戻す」ボタンがあります。

enter image description here

元のPRがマージされたブランチは自動的に更新されないことに注意してください。 PRを元に戻すコミットで新しいブランチを作成します。

enter image description here

その後、このブランチからPRを作成してマージできます。

11
oknate

Bitbucketには「マージプルリクエスト」機能がリリースされました。詳細については、 このリンク を参照してください。

9
Pieter Du Toit