将旧更改移离主分支

时间:2014-10-19 18:38:49

标签: git revert

我向我的主git分支提交了一些提交,并提供了一些错误的代码,我想摆脱它。

Commit 1
Commit 2
Commit 3

我想继续提交2,并删除在提交1和3中所做的更改。提交2和提交1,3没有交集。此外,值得指出的是,提交1和3的所有更改都局限于特定目录中的几个文件,提交2也没有触及。

如何使用git执行此操作?

1 个答案:

答案 0 :(得分:0)

您应该使用交互式git rebase:

git rebase -i HEAD~3

您将看到3个提交的列表。 删除不需要的提交行,保存并退出编辑器。 Git将执行rebase操作并删除提交

如果您已将chanes推到上游远程,则需要执行强制推送,即强制覆盖历史记录。 请记住,Git中只有一条规则 - 不要覆盖已发布的历史记录。 当您与某些项目的许多人合作时,这一点非常重要。在这种情况下,如果您推送了一个错误的提交,我建议使用

git revert commitID 

或者只修复bug并在commit3

之上提交修复程序