昨晚我在自动驾驶,不知不觉中将一个大型功能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 无关的原始/开发合并。我想策略是回到过去并开始挑选樱桃。但是还有其他方法吗?