如果我在我的pull请求中推送多个提交,我是否必须将它们压缩到一个提交中?

时间:2017-05-24 09:32:15

标签: git github git-rebase

对于一个项目,我做了两次提交,推送它们并调用了一个pull请求。所以现在我的pull请求包含2个提交。但两者差别很大,第二个是正确的解决方案。我试过了

git rebase -i HEAD~2 

将第一次提交压缩到第二次,但我遇到了冲突。 由于这两个版本差异很大,因此存在很多冲突。所以,我的问题是,我真的必须将2个提交压缩成一个并花费所有时间来解决冲突吗?有什么方法可以从pull请求中删除第一个提交,或者告诉Github只考虑第二次提交吗?

2 个答案:

答案 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

希望这有帮助!