我想为两个提交(父级和子级)之间的差异创建一个拉取请求。我可以在我的两个提交之间做一个差异d4242...d4141
,但它接缝 github 不允许放在d4242...d4141
该字段中。(错误:没有什么可比较的。)
它们是一种请求差异的方法,或者至少告诉从原始存储库和分叉存储库之间的差异中删除一些文件/哈希?
您只能为分支创建拉取请求,因此只需创建一个指向该分支d4141
并启动拉取请求的分支。
您还应该确保整个分支重新建立在上游的 master 之上,并且它不包含您在自己的存储库中可能拥有的任何其他依赖项。所以它不应该是这样的:
A --- B --- C --- [d4242] --- * --- * --- [d4141]
/
X --- * --- * --- [upstream/master]
如果是这种情况,你应该去掉 commits A
,因为它们是你的 fork 独有的。你可以通过创建一个新的分支来做到这一点,或者然后在你的拉取请求中挑选你想要的所有提交:B
C
X
upstream/master
git checkout -b new-pull-request upstream/master
git cherry-pick d4242..d4141
git push origin new-pull-request
然后,您可以为该分支创建拉取请求。
一般来说,你为上游项目做的事情应该在单独的主题分支中完成,即完全独立和分离的分支。这样,您将永远不会遇到提交的依赖问题可能无法进入上游存储库的问题。它还使上游存储库的维护者更容易接受您的拉取请求。
您可以基于上游启动一个新分支并对其进行挑选d4141
,并对新分支进行拉取请求。