对于一个项目,我做了两次提交,推送它们并调用了一个pull请求。所以现在我的pull请求包含2个提交。但两者差别很大,第二个是正确的解决方案。我试过了
git rebase -i HEAD~2
将第一次提交压缩到第二次,但我遇到了冲突。 由于这两个版本差异很大,因此存在很多冲突。所以,我的问题是,我真的必须将2个提交压缩成一个并花费所有时间来解决冲突吗?有什么方法可以从pull请求中删除第一个提交,或者告诉Github只考虑第二次提交吗?
答案 0 :(得分:0)
这取决于项目的政策。通常,提交应该是有意义的,所以如果例如提交两个提交就可以了。一个实现一个功能,第二个修复周围代码中的空白或重构相关的功能。 YMMV。
答案 1 :(得分:0)
如果我正确理解了您的问题,那么首先您必须在本地解决冲突,然后再推送它。要解决冲突,您要么压缩提交,要么删除一次提交,这不是必需的。
要删除最后一次提交,您可以执行此提交(假设您正在进行最后一次提交)
git reset --hard HEAD~1
HEAD~1
表示在头之前提交。
或者您可以查看git log git log
以查看提交ID,然后返回到此处。
git reset --hard <sha1-commit-id>
如果你已经推送到Github,你需要做force push
来摆脱它。
git push origin HEAD --force
希望这有帮助!