如何删除合并提交

时间:2015-11-03 14:57:17

标签: git github

每当我从中央存储库更新我的repo时,我的master分支上都会进行某些合并提交。现在每当我从master创建一个新的分支时,这些提交都会出现在非常烦人的pull请求中。如何在更新时删除这些提交并在将来避免它们? 我知道已经问过这类问题,但是对我来说没有任何问题。

1 个答案:

答案 0 :(得分:3)

这里的问题是您的主分支包含不属于上游存储库的提交(特别是合并提交)。因此,任何基于此主分支的分支也将具有这些提交,因此任何要求将其中一个分支合并到上游主分支的PR也将包含它们。

要解决此问题,您可以将本地主服务器从上游存储库重新绑定到主服务器上。默认情况下,git rebase忽略合并提交,因此这应该消除分支历史记录中任何多余的提交。假设您已将上游存储库设置为名为upstream的远程存储库,您可以这样做:

git fetch upstream
git checkout master
git rebase upstream/master
git push -f origin master

或者,如果您确定您的主分支不包含您希望保留的更改,而这些更改尚未存在于上游存储库的主分支中(根据您在问题中所述的内容,应该是case),你可以简单地重置它以匹配上游主机:

git fetch upstream
git checkout master
git reset --hard upstream/master
git push -f origin master

完成此操作后,将功能分支重新绑定到新的主分支上:

git checkout feature
git rebase master
git push -f origin feature

这应该从您的拉取请求中删除额外的合并提交。