我在Github上分叉了一个项目.
让远程上游upstream和我的远程存储库成为origin.我的本地master分支设置为跟踪远程master分支.然后我在本地添加了一些东西master,我偶尔和上游合并.
直到今天,当我想发出拉取请求时,我才发现问题:拉取请求包括那些合并提交,以及我以前无需担心的那些不需要的提交.然而我想要的只是提交我做的最后一次提交,应该作为单个提交提取.我该怎么做才能解救这个?
Arr*_*ter 28
而不是合并你想要变基.你可以手动完成,也可以在拉动时自动完成.
git pull --rebase upstream master
git push --force origin master
Run Code Online (Sandbox Code Playgroud)
一旦你开始做合并,虽然这将很难做到,你需要在进行合并提交之前将分支重置为.
csd*_*csd 10
如果我理解你的问题,你想要摆脱你在分支中所做的中间/一次性提交.尝试这样的事情:
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)
Run Code Online (Sandbox Code Playgroud)
这应该给你一个本地"for-upstream"分支,它只包含上游master +你的1提交.然后,您可以提交该分支以获取请求
在Github上,您无法为分支上的单个特定签入创建拉取请求,该分支具有将其与上游分隔开的多个签入.
专门为您打算进行的每个拉取请求创建一个分支.这使您可以继续工作而不必担心污染拉取请求.