如何合并 2 github 存储库来触发拉取请求?

How merge 2 github repository to trigger a pullrequest?

我确定有大量的文档,但对我来说似乎没有什么是清楚的。

我想为开源项目做贡献,第一次做真正的 PR。 (迟到总比不到好)。

为了简单起见,我只想接受某人在 github fork 上所做的工作(但没有推回 master),做一些小的更新,然后尝试做一个 PR到原始存储库

主仓库是 (R1):

分叉和更新的回购是(R2):(注意:在特定分支中)

我在我的帐户上分叉了 ageneau 回购协议

我的意图是:

  1. 在我的 github 帐户上对 R2 进行分叉 = 我没有成功。它 总是在没有有趣分支的情况下给我 R1。该怎么办 ? 事实上,我已经添加了 R1 Fork。所以我删除了 R1 分叉并成功地在我的 Github

  2. 上分叉了 R2
  3. 然后获取本地仓库:
    git clone https://github.com/afaucogney/loopback-sdk-android.git

  4. 添加原点
    git init
    git remote add origin https://github.com/afaucogney/loopback-sdk-android.git

  5. 添加上游(Strongloop版本)
    git remote add origin https://github.com/strongloop/loopback-sdk-android.git

  6. 创建本地分支
    cd loopback-sdk-android
    git branch firstpr
    git checkout firstpr

那我想怎么办

git rebase origin upstream...但没有发生任何有趣的事情。

请指教流程和git命令。

让我看看我是否理解正确。您是否尝试过分叉 R2,首先删除您不再需要的先前分叉?

编辑: 这里的问题是你分叉了两个 repos,其中只需要第二个,因为那个包含你需要的分支。

此时你有两个选择: 1.- 删除您在 github 帐户上所做的分叉,然后再次分叉 R2。 2.- 将 R2 添加为远程并创建 git fetch R2 以获取仅在 R2 上的那些分支。

让我们看一个非常详细的工作:

  1. 通过单击 "Fork" 按钮在 Github 提供解决方案的回购上进行分叉:

    所以你在你的 Github(这里称为 R3)帐户中得到一个分支,如:

  2. 在 Github 中,做一个 Pull Request:

    其中:

    • 基础回购是 MilleZimTech fix_flatten 分支(有解决方案的分支)
    • 比较仓库是 Strongloop (R1) 主分支

    就像那样(自 Ageneau 分叉以来所有的提交都由 Strongloop 完成):

  3. 点击"Create Pull Request":

  4. PR无法自动合并:

  5. 在本地计算机上克隆分支(注意,该过程与 Github 提出的过程不同)。使用 --branch <branch-name> 克隆特定分支

    git clone https://github.com/MilleZimTech/loopback-sdk-android.git --branch fix_flatten
    cd loopback-sdk-android
    git branch

    您应该看到 'fix_flatten' 分支

  6. 创建一个包含主仓库的新分支:

    git checkout -b strongloop-master fix_flatten git pull https://github.com/strongloop/loopback-sdk-android.git master

    以防冲突。

    git status 告诉你有没有被修改的文件。
    git add . 添加新文件。
    git commit -am"merge fix_flatten master" 提交更改。
    再次 git pull https://github.com/strongloop/loopback-sdk-android.git master

  7. 切换fix_flatten分支

    git checkout fix_flatten

  8. 合并两个分支而不进行 FastForward 合并

    git merge --no-ff strongloop-master

    你应该看到:

  9. 推回到 Github 仓库

    git push origin fix_flatten

  10. 如果您使用 git:// 而不是 https:// 克隆 repo,您​​需要:

    git remote set-url --push origin https://github.com/MilleZimTech/loopback-sdk-android.git,使用原始存储库的 --push' because without, only thefetch` 参数将被更新。

    又一次git push origin fix_flatten

  11. 然后在Github上看到变化喜欢

  12. 由于这是最新的 fix_flatten 分支,请在我的仓库的 master 分支上执行拉取请求。

    Select fix_flatten 分支,然后我们可以看到:

  13. 点击 PullRequest

    • 基地master分支
    • 比较fix_flatten分支
  14. 合并并确认 PullRequest

  15. 然后你就可以安全的PullRequest Strongloop repo

结束:

Ouuuf...这很难找到和描述。但我认为这可以帮助那些不太了解的人git。尽管如此,我还是不明白为什么会如此复杂和漫长。

有没有人有更直接的方法来完成这种日常任务?