我已经从GitHub派生了一个项目。我在master
分支中进行自己的开发(通过为开发的特性/修复创建分支并将它们合并回master
)。
现在,我在我的分支中创建了一个分支bugfix-123
,以修复原始项目中的问题123。我想创建一个新的拉取请求,以便将我的修复合并到原始项目中。但我注意到拉请求不仅包含错误修复本身,还包含我在master
分支中自创建fork以来的所有提交。
如何创建只包含单个提交的拉取请求?我必须为此创建另一个fork吗?为了能够在原始项目中创建pull请求并执行我自己的分支版本开发,我应该做些什么呢?
发布于 2019-03-05 21:07:46
正如在Send a pull request on GitHub for only latest commit中已经提到的,有必要为拉取请求创建一个单独的错误修复分支。编辑:虽然我认为我的答案与链接中接受的答案不同,但我可能读错了-我是以同样的方式做到的:
git fetch upstream #synchronize local repo from upstream
git checkout upstream/master #the upstream repository master has already a local branch, upstream/master, it's not necessary to create another copy
git checkout -b PR-bugfix-123 #create a branch dedicated for the pull request, and make it your current branch
git cherry-pick <commit hash> #merge changes from a specific commit; cherry-pick also allows picking a range of commits
git push origin PR-bugfix-123 #publish the branch to the fork in order to create the pull request
表示法:
我决定遵循以下约定:
尽管如此,仍然不需要将其重命名为bugfix-123
开发分支
发布于 2019-03-05 01:59:32
首先,您应该将原始项目添加为远程项目:
git remote add upstream <URL to original project>
现在从原始文件中获取分支:
git fetch upstream
现在,您将拥有一个名为upstream/master
的分支,它从原始存储库镜像master
分支。你可以通过在这个分支上重新建立基础来移动你的bug修复分支:
git checkout -b PR-bugfix-123 bugfix-123
git rebase --onto upstream/master master
https://stackoverflow.com/questions/54988867
复制相似问题