何が起こったかは次のとおりです。
私は 2 つのリモート git ブランチを持っています:master
とfeature1
. なぜかブランチに使わないといけないのですが、いつ使うgit push --force
とブランチもプッシュしてしまうのfeature1
かわかりませんでした。その後、ローカルブランチをリモート リポジトリにプッシュしたところ、問題が発生しました。git push --force
master
master
幸いなことに、私のローカル ブランチはリモートからそれほど遠くありません。基本的に、私のリモートmaster
には、ローカルの前にマージされた 2 つのプル リクエストがありますmaster
。
私の問題は次のとおりです。プルリクエストを再度開いて再マージできますか? マージリクエストのコミット版があることに気がついたので、単純にプルリクエストを新規作成すると何かおかしくないか心配です。理想的には、2 つのリクエストのマージをやり直したいだけです。
この災害から回復する他の方法はありますか? --force
私はそれが本当に、本当に悪い選択であることを学びました。:(
更新、何が起こったかの例:
次のブランチがあります。
master
feature1
origin/master
origin/feature1
GitHub の を使用して 2 つのプル リクエストを統合しますAuto merge pull requests
。master
次に、ローカル マシンでブランチをフェッチしませんでした。したがって、私origin/master
のバージョンはリモート マスターより 2 つ遅れていると思います。
その後、誤って を使用git -f push
してリモート ブランチを上書きし、リモート リポジトリのプル リクエストからのコミットを失いました。
他の貢献者の履歴を台無しにすることなく、どうすれば回復できますか?