【发布时间】:2019-12-22 07:19:20
【问题描述】:
假设我有两个分支 A 和 master。意外添加并完成了分支A 的功能(该功能也在处理处于工作状态/合并到主控但需要稍后继续的不同功能)。
现在我希望从A 中删除产生新功能的提交,同时保持当前 HEAD 中的主状态。理想情况下是这样的:
git checkout A
git revert HEAD~2..HEAD
但是这不会也恢复 master 分支的 HEAD 吗?
【问题讨论】:
-
首先,不要问我们会发生什么。告诉我们你想要发生什么。我理解你的问题的方式是你有一个分支,A,你(不小心)添加了一些不相关的东西,然后你将 A 合并到 master。现在,你想从 A 中恢复/撤消/删除那个不相关的东西,但你想把它保留在 master 上。我没听错吗?
-
@LasseVågsætherKarlsen - 是的,但更重要的是,我希望了解“还原之类的东西”如何与分支一起使用。他们是在一个分支上工作还是他们也恢复其他分支。
-
恢复只是添加另一个提交,该提交与您要恢复的提交相反。如果原始提交添加了一行,则还原提交将其删除,依此类推。还原会添加另一个提交,您需要自己将该提交合并到相关分支中。 Revert 无法将提交插入历史记录,也无法更改原始提交,因此它会影响您希望它影响的分支。
标签: git git-revert