首页 > 解决方案 > 如何重置先前提交中的所有更改并将其与实际合并?

问题描述

我有 3 次提交:master -> v1 -> v2 在 v1 中我们发现了问题并决定丢弃其中的所有更改。如何重置 v2 中的这些更改?

我尝试切换到分支 v1 并运行“git reset --hard HEAD^”。下一步是什么?我现在尝试结帐到 v2 并将其与 v1 合并,但它不起作用。

标签: git

解决方案


您很可能想在git revert这里使用:

# from your branch
git log

找到提交的 SHA-1 哈希v1并将其记录在某处。然后还原:

git revert abc123

这将在您的分支顶部添加一个新提交,该提交在功能上撤消v1提交引入的任何更改。

请注意,硬重置在这里不起作用,除非还取消v2提交,因为它所能做的就是将 theHEAD和所有其他指针移回一定数量的提交。如果您想改写历史记录以删除v1,那么交互式 rebase可以做到这一点。但一般来说,重写 Git 分支的历史是不可取的,假设该分支已经公开并且可能正在被其他用户使用。


推荐阅读