【问题标题】:Add Github fork to existing repository将 Github fork 添加到现有存储库
【发布时间】:2011-11-04 20:00:00
【问题描述】:

我按照给定的说明 (http://octopress.org/docs/setup/) 设置了一个 Octopress 项目,您可以创建一个 Github 存储库,并在您的计算机上创建一个本地存储库。在您的本地机器上,您将远程添加到原始 Octopress 存储库,然后发出“git pull”命令。然后,您将远程添加到您的 Github 存储库,以便您可以将更改推送到您的存储库。

所有这些都可以正常工作,但它不会创建原始项目的分支,这意味着(对于新手而言)没有明显的方式来向原始 Octopress 存储库发出拉取请求。

我有没有办法将原始 Octopress 存储库的分支添加到我在 Github 上的该存储库实例中?

如果没有办法,我是否可以安全地删除我的 Octopress 的 Github 实例,在 Github 上 fork 原始实例,然后将本地存储库中的新远程添加到新分叉的 Octopress 中?

【问题讨论】:

    标签: git github fork


    【解决方案1】:

    如果我理解 OP。 他们有一个 Git 存储库,现在他们决定应该分叉另一个存储库。 追溯地,他们希望它成为一个分叉,而不需要他们定位新的 repo,从而扰乱使用 repo 的团队。

    我考虑过将新的存储库重命名到位。 因此,如果团队当前克隆、获取和拉取 example.git

    1. 设置一个新的 repo,它是一个 fork,example_fork.git
    2. 将 example.git 重命名为 example_deprecated.git
    3. 快速将 example_fork.git 重命名为 example.git。

    我听说任何已经有克隆的人都会遇到各种各样的错误(所以这并没有像我希望的那样避免不便)

    我还看到了使用 Force Push 的建议:Marking a repo as a fork in github, after the fact

    .

    但现在我想知道讨论主题是否更准确地表述为“设置现有存储库的上游远程”。 在这里讨论: Adding remote upstream to git repo on bit bucket

    根据此处提供的反馈:What does 'git remote add upstream' help achieve? 我认为它基本上允许我想要的追溯分叉,就像我认为 OP 要求的那样。

    我还没试过。

    【讨论】:

      【解决方案2】:

      尽管人们倾向于将他们在 Github 上的存储库视为“官方”存储库,但请记住,这是一种社会区别,而不是技术区别。从 git 的角度来看,每个 repo 都是平等的。这意味着只要您将每个提交都拉入本地存储库,您就可以安全地删除 Github 上的提交。然后只需在 github 上 fork Octopress 项目,在本地 repo 上将其设置为远程,然后推送。 Git 不在乎您最初从哪个仓库获得任何给定的提交。它“正常工作”。

      【讨论】:

      • 以下是我遵循的步骤:(1) 我删除了 Github 存储库,(2) 我分叉了 Octopress,(3) 我删除了将我的本地存储库绑定到现在已删除的存储库的远程,( 4)我向新分叉的 Octopress 存储库添加了一个新的远程(“origin”),(5)我做了一个 git pull origin master 以通过“![拒绝] master -> master non-fast-forward)" 错误,(6) 我清理了一些合并冲突(由我尚未删除的 Octopress 更新引起),(7) 重新生成我的网站以验证它是否正常工作,并且最后,(8)从我的本地存储库推送回 Github。
      【解决方案3】:

      我不知道有什么方法可以在事后将你的空白 github 副本变成 github 分叉,所以

      如果没有办法,我可以安全地删除我的 Github 实例吗? Octopress,在 Github 上 fork 原版,然后添加一个新的遥控器 我的本地存储库到新分叉的 Octopress?

      是要走的路。删除您自己的 github 存储库,点击 octoprocess 存储库上的 fork 按钮,然后将您的 fork 克隆到本地计算机。

      如果您已经进行了任何要保留的更改,我会说使用git format-patch 将它们存储为一系列补丁文件并使用git apply-patch 将它们应用于新存储库的克隆是可能比将旧的用作遥控器(在本地计算机上)更容易。

      【讨论】:

        猜你喜欢
        • 2013-01-04
        • 1970-01-01
        • 2021-10-03
        • 2012-09-23
        • 1970-01-01
        • 2010-10-22
        • 1970-01-01
        • 2012-09-23
        • 1970-01-01
        相关资源
        最近更新 更多