0

私は昨夜自動操縦をしていて、無意識のうちに大きな機能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 に関係のない他の多くのオリジン/開発へのマージを失っているようです。戦略は、時間をさかのぼってチェリーピックを始めることだと思います。しかし、別の方法はありますか?

4

0 に答える 0