私は昨夜自動操縦をしていて、無意識のうちに大きな機能feature/bigfeature
ブランチを私たちのdevelop
ブランチにマージし、リモートにプッシュしましたorigin/develop
. 私は開発が完全に無傷で変更されていないことを望んでいました。
このフィーチャー ブランチは数週間にわたって開発中であり、ワークフローの一部は継続的に origin/develop をそれにマージしていました。これにより、マージ/プッシュを元に戻すことが難しくなります (不可能ですか?)
iceddante$ git checkout develop
iceddante$ git merge origin/feature/bigfeature
Updating 94c8d1f0..298b93fe
Fast-forward
<< lots of files >>
iceddante$ git push
Total 0 (delta 0), reused 0 (delta 0)
To https://github.com/Kinesso/api-reach-optimization.git
94c8d1f0..298b93fe develop -> develop
各ブランチには時間の経過とともにいくつかのコミットがあり、これを解く方法は履歴を見ると明確ではありません。マージコミットの復帰を試みました:
git revert 94c8d1f0 -m 1
しかし、これは、origin/develop のフィーチャー ブランチへの最後のマージ後に、狭い範囲のコミットを元に戻すだけです。reflog でマージを特定しました。
19f1ac1b (origin/feature/MPL-5178, feature/MPL-5178) HEAD@{16}: checkout: moving from develop to feature/bigfeature
298b93fe HEAD@{17}: merge origin/feature/bigfeature: Fast-forward
94c8d1f0 HEAD@{18}: pull: Fast-forward
19553db9 HEAD@{19}: checkout: moving from feature/bigfeature to develop
だから私はできることを知っていますgit reset --keep develop@{N}
が、繰り返しますが、bigfeature に関係のない他の多くのオリジン/開発へのマージを失っているようです。戦略は、時間をさかのぼってチェリーピックを始めることだと思います。しかし、別の方法はありますか?