2

一段时间以来,我一直是 Plastic SCM 的忠实粉丝,在我自己的个人项目中使用它。最近我决定为 github 上的一个开源项目做出贡献。由于 Plastic SCM 可以用作 github 客户端,因此我决定照此使用它。

现在这是我第一次使用 github,所以我遵循了所有教程中描述的经典 github 工作流程:

  • 分叉 repo 以获得你自己的副本
  • 将 Plastic SCM 存储库与个人 github 存储库同步
  • 在塑料 SCM 中提交变更集
  • 再次将 Plastic SCM 存储库与 github 同步

到目前为止一切顺利。我贡献了我的代码,将其上传到 github,然后看到所有变更集和分支都出现在 github webui 中。

接下来,我向我分叉的原始仓库提交了一个拉取请求。这就是我的问题开始的地方。拉取请求被接受,一个新的变更集出现在包含我的拉取请求的原始仓库中。似乎我所有的中间分支也没有转移到原始仓库。

github 网络图

如上面的网络图所示,原始仓库(紫色)现在不再与我的同步。我从另一个分支(VEH003)的进一步开发开始,但这个分支似乎与原始存储库(紫色)完全断开。

在我的 Plastic SCM 客户端中,我可以在分支浏览器中看到完全相同的网络图,紫色分支除外。

我读到要使用原始存储库中的变更集更新您的 fork,这必须明确完成,并且在您的本地 git 存储库(github 帮助)中完成。现在我不知道这是如何使用塑料单片机完成的。

4

1 回答 1

2

要将本地 fork 与原始 repo 同步,如 github 帮助中所述,您需要将上游 master 分支与本地 master 分支合并。

这里的重点是 Plastic SCM 不会跟踪或同步上游引用(原始 repo 的引用),只是您的 github 的 repo 引用。

为了能够更新您的 fork,并继续使用 Plastic SCM,您应该使用命令行 git 客户端按照您链接的指南执行更新,将本地 git 更改推送到您的 github 存储库,然后将 Plastic SCM 与 github 同步以获取变化。一步步:

  • 使用 git 客户端克隆你的 github 仓库

    git clone your-fork-url

  • 添加上游存储库。

    git remote add upstream original-repo-url

  • 获取上游引用。

    git fetch upstream

  • 将上游更改合并到您的主分支。

    git checkout master

    git merge upstream/master

  • 将 master 分支推送到您的 github 存储库。

    git push origin master

  • 将 Plastic SCM 与您的 github 存储库同步。

于 2014-04-23T13:34:45.357 回答