在新的fork压缩原始提交后无法创建拉取请求

时间:2014-09-27 06:48:39

标签: git github pull-request squash

我在GitHub上分叉了一个项目。在对forked项目进行更改/提交之前,我需要压缩原始提交。但是,我想知道我是否能够创建一个拉取请求,以便将我的更改合并回原始项目。可以这样做吗?

我试图在一个测试项目中做到这一点,但似乎我无法执行拉取请求,因为网络显示两个项目已不再连接。这是我做的:

  1. 创建了一个测试项目("原始项目")
  2. 创建了一个新文件,已提交并已推送
  3. 创建了另一个文件,已提交并已推送
  4. 在另一个帐户中,我分叉了测试项目("分叉项目")
  5. 在分叉项目中,我压缩了有3次提交的git日志(然后&#39; git rebase --root -i&#39;然后&#39; git push origin master --force&#39;)< / LI>
  6. 在分叉项目中,我修改了其中一个文件,已提交并已推送。这是对fork的第一次更改。
  7. 尝试在GitHub上执行拉取请求,将#6从分叉项目中的更改合并到原始项目中,但是说“没有任何东西要比较。” original:master和forked:master是完全不同的提交历史。&#34;
  8. 网络如下所示:

    original    forked
    
       o                (git init)
       |
       o                (add file)
       |
       o                (add file)
    
                   o    (squashing commits)
                   |
                   o    (update file)
    

    也许我做错了什么?或者我的设置不正确?或者它无法完成......

1 个答案:

答案 0 :(得分:0)

我确认:PR需要在专用分支中完成,基于原始仓库和分支之间的常见历史记录。

如果您压缩第一次提交,则会更改该常用历史记录。

您需要与原始项目进行沟通,以便其所有者进行必要的更改 然后你可以分叉那个回购,并制作新的PR。