1

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

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

  1. 创建了一个测试项目(“原始项目”)
  2. 创建一个新文件,提交并推送
  3. 创建另一个文件,提交并推送
  4. 在另一个帐户中,我分叉了测试项目(“分叉项目”)
  5. 在分叉的项目中,我压缩了具有 3 次提交的 git 日志(运行 'git rebase --root -i' 然后 'git push origin master --force')
  6. 在分叉的项目中,我修改了其中一个文件,提交并推送。这是对前叉的第一次更改。
  7. 试图在 GitHub 上提出拉取请求,将 #6 的更改从分叉项目合并到原始项目,但说“没有什么可比较的。original:master 和 forked:master 是完全不同的提交历史。”

网络如下所示:

original    forked

   o                (git init)
   |
   o                (add file)
   |
   o                (add file)

               o    (squashing commits)
               |
               o    (update file)

也许我做错了什么?还是我的设置不正确?或者根本做不到……

4

1 回答 1

0

我确认:PR 需要在一个专门的分支中完成,基于原始 repo 和 fork 之间的共同历史。

如果你压制第一次提交,你就会改变那个共同的历史。

您需要与原始项目沟通,以便他/她的所有者进行所需的更改。
然后你可以 fork 那个 repo,并创建新的 PR。

于 2014-09-27T07:17:01.560 回答