在GitHub上执行请求时避免不需要的合并提交和其他提交

我在Github上分了一个项目。

让远程上游位于upstream并且我的远程存储库是origin 。 我的本地master分支设置为跟踪远程master分支。 然后我在当地的master添加了一些东西,并且我偶尔会与上游合并。

直到今天,当我想发出一个pull请求时,我发现问题:pull request包含那些合并提交 ,以及那些我以前没有做过的不需要的提交 。 然而,我想要的只是提交我所做的最后一次提交,应该将其作为单个提交进行提交。 我能做些什么来拯救这个?


而不是合并你想要rebase。 您可以手动执行此操作,也可以在拉动时自动执

git pull --rebase upstream master
git push --force origin master

一旦你开始合并,虽然这将很难做到,但是你需要在你完成合并提交之前将分支重新设置回来。


如果我理解你的问题,你想摆脱你在分支中做的中间/一次性提交。 尝试这样的事情:

git checkout -b for-upstream remotes/origin/master (create a new branch from the upstream origin)
git cherry-pick <sha-of-the-one-commit-you-want-to-submit> (fix any conflicts if necessary)

这应该给你一个本地的“上游”分支,其中只包含上游主控+你的1个提交。 然后您可以提交该分支以进行拉取请求


在Github上,您不能在具有多个checkin的分支上为单独的特定签入创建拉取请求。

专门为您打算制作的每个拉取请求创建一个分支。 这使您可以继续工作,而不用担心污染拉请求。

链接地址: http://www.djcxy.com/p/48943.html

上一篇: Avoid unwanted merge commits and other commits when doing pull request on GitHub

下一篇: Android Studio Update Project: Merge vs Rebase vs Branch Default