代码之家  ›  专栏  ›  技术社区  ›  Mark

在Eclipse中使用原始项目时,如何处理项目fork?

  •  1
  • Mark  · 技术社区  · 6 年前

    我试图在GitHub上为项目“original/QWERTY”创建一个pull请求,所以我将repo分叉为“Mark/QWERTY”。在Eclipse中,我已经为“original/QWERTY”设置了一个存储库,该项目位于我的工作区中,名为QWERTY。

    现在,如果我创建一个指向“Mark/QWERTY”的新存储库,我将有两个同名的项目,Eclipse和我都不会喜欢它。

    我想应该可以有一个或另一个分支 remote 在存储库下,在它们之间切换,而不是有两个副本(我的意思是只存储差异)。问题是,他们在GitHub上是不同的项目,所以我不知道怎么做。

    在带有EGit的Eclipse中,设置两个GitHub项目来创建从我的fork到原始fork的pull请求的正确方法是什么?

    2 回复  |  直到 6 年前
        1
  •  3
  •   Rüdiger Herrmann    6 年前

    使用此设置,可以在源自不同远程存储库的分支之间切换。

    这个 Fork a repo GitHub的文档在使用CLI Git时解释了这个设置。它的大部分内容也应该应用于托管在其他地方的存储库。

    如何使用EGit管理多个远程设备,请参见以下文档: https://wiki.eclipse.org/EGit/User_Guide#Remote_Repositories

        2
  •  1
  •   Mark    6 年前

    利用鲁迪格的信息 comment answer 我对树枝的反复试验使我走了自己的路。 This picture 还有助于术语。

    • fork是github网站中的原始项目,因此现在您拥有了原始项目和fork。它们有相同的代码和分支。
    • 创建指向 github回购。假设您决定只选择 master 分支机构。
      • 遥控器:你换个新的遥控器,我给你打电话 origin +refs/heads/*:refs/remotes/origin/* . 此参考规范映射 回购分支到同名的远程跟踪分支。如果你只想拿到 分支然后使用 +refs/heads/master:refs/remotes/origin/master
      • 分支:你会得到一个叫做“远程跟踪”的分支 origin/master 还有一个叫 主人 配置为“远程:原点”和“上游分支:参考/头/主”。你将在当地政府的领导下工作 主人

    现在,你希望能够推动到你的叉子,这样你就可以创建公关。你可以,而且已经从原来的拉,以不断获得其他人的工作更新。

    • 右键单击“遥控器”并创建一个新的遥控器,我称之为 fork
      • 起源 远程URI指向原始URI。
      • ref映射映射分支。转到“高级”并单击“添加所有分支规范”,如果没有为您完成。你应该拿到说明书 refs/heads/*:refs/heads/*
    • 创建本地分支(右键单击->切换到->新分支),其源是名为 主人 分支机构的名称与它的用途相符。它可以是 主人 分支或一个新分支,比如说修复了一个bug bug 123 没有 然后您需要在远程 找一个远程分支。
    • 错误123 (您可以在旁边看到一个复选标记)。修复代码中的错误,在Git Staging视图中,您应该可以看到文件发生了更改,并且 <Repository name> [bug 123] . 确保要提交/推送到正确的分支!暂存所需内容并提交(将更改添加到本地分支 bug123 )和push(在github repo上创建一个名为 如果使用默认规范)。
    • 现在转到GitHub repo页面,无论是原始的还是fork,UI都会告诉你可以创建PR,GitHub会在那里指导你。

    主人 在GitHubm上的原始分支,您将要从 主人 .

    • 右键单击遥控器 或其fetch“subdir”并选择fetch。将获取中的任何更改 远程分支是因为我们使用的fetch规范映射了所有分支(我们使用 *

    就这样。继续切换到本地分支,该分支基于更新的 ,修复bug,提交并推送,创建PR,等待合并到原始文件中,从原始文件中获取并拉取。