我向我的主git分支提交了一些提交,并提供了一些错误的代码,我想摆脱它。
Commit 1
Commit 2
Commit 3
我想继续提交2,并删除在提交1和3中所做的更改。提交2和提交1,3没有交集。此外,值得指出的是,提交1和3的所有更改都局限于特定目录中的几个文件,提交2也没有触及。
如何使用git执行此操作?
答案 0 :(得分:0)
您应该使用交互式git rebase:
git rebase -i HEAD~3
您将看到3个提交的列表。 删除不需要的提交行,保存并退出编辑器。 Git将执行rebase操作并删除提交
如果您已将chanes推到上游远程,则需要执行强制推送,即强制覆盖历史记录。 请记住,Git中只有一条规则 - 不要覆盖已发布的历史记录。 当您与某些项目的许多人合作时,这一点非常重要。在这种情况下,如果您推送了一个错误的提交,我建议使用
git revert commitID
或者只修复bug并在commit3
之上提交修复程序