プルリクエストを作成し、それを間違ったブランチにマージしました。どうすれば元に戻すことができますか?
ここまで見てきたところでは、宛先ブランチをハードリセットすることはできますが、Origin
リポジトリのプルリクエストはどうでしょうか。
Bitbucketを使用していて、SourceTreeからプル要求を作成しました(Bitbucketページを開きます)。
作業中のブランチは3つあります:master
、dev
、およびcreate-alias
。 create-alias
はdev
からセットアップされ、dev
はmaster
からセットアップされました:master -> dev -> create-alias
。問題は、create-alias
からプルリクエストを作成し、master
ではなくdev
にマージしたことです。
私は今create-alias
ブランチに取り組んでいます。 create-alias
の最後のコミットは6ee20f9
であり、master
のマージされたコミットはbe36f72
です。
誰がそれを元に戻すかについて少し書き留めていただけますか?
これまでのところ、私は理解することができました:
master
のチェックアウト。6ee20f9
を元に戻します。create-alias
をチェックアウトし、作業を続けます。そうじゃない?
残念ながら、この記事の執筆時点では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にはマージを右クリックして元に戻す方法はありませんが、 機能要求が存在します です。
Bitbucketには「マージプルリクエスト」機能がリリースされました。詳細については、 このリンク を参照してください。