【发布时间】:2017-08-03 21:10:11
【问题描述】:
我最近使用 git 将本地功能分支合并到本地主分支。然后我做了一些更改并提交到主分支。现在,我想摆脱在我的主分支上合并引起的变化。所以我做了一个:
git revert <commit-id>
但是,我得到了错误
错误:提交 c49aaca4acf461cc41390c1d1d3477f09e25a368 是合并但 没有给出 -m 选项。致命:还原失败
仅供参考,我没有向服务器推送任何内容。我在网上搜索,但找不到合适的解决方案。有谁知道该怎么做?谢谢。
【问题讨论】:
-
参见stackoverflow.com/q/2389361/1256452,这并不完全是重复的,但确实包含许多正确答案。这里的主要问题是您是否已推动此合并,以及您想要现在做多少工作来保持合并后的更改,以及您想要推迟多少工作到以后,恢复合并的更改。
-
我还没有推送合并。我阅读了您提供的链接。但就我而言,我已经对我的主分支进行了一些更改和提交。我只是想知道是否有一种方法可以只摆脱那个合并,同时保持所有合并后的更改。
-
好的,如果你还没有push,我没有时间给出正确的答案,但是你可以使用
git rebase来copy 所有非合并提交。 Rebase 通常会完全去除合并,因此,没有其他人拥有您现在不喜欢的原始提交,因为它们中有合并,您的副本减去合并应该正是您想要的。