使用Plastic SCM在github上同步fork

时间:2014-04-17 06:14:28

标签: github plasticscm

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

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

  • 使用repo来获取自己的副本
  • 将Plastic SCM repo与个人github repo同步
  • 在Plastic SCM中提交更改集
  • 再次将塑料SCM回购与github同步

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

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

github Network Graph

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

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

我读到要使用原始repo中的更改集更新fork,这必须在显式上完成,并在本地git存储库(github help)中。现在我不知道如何使用Plastic SCM完成这项工作。

1 个答案:

答案 0 :(得分:2)

要将本地分支与原始仓库同步,​​如github帮助中所述,您需要将上游主分支与本地主分支合并。

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

为了能够更新你的fork,并继续使用Plastic SCM,你应该使用命令行git client按照你链接的指南执行更新,将本地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

  • 将塑料SCM与您的github仓库同步。