GitHub: 让 fork 成为一个“自己的项目”

我发现了一个不错的 GitHub 项目,我扩展了很多。我相信我的改变是好的,因为它们起作用了。但是,原作者似乎没有时间审查这些修改,并将其包括在内。事实上,我需要和实现的特性甚至可能不在原作者的视野中,我们只是针对不同的目标。我不知道,因为我从来没有得到他的回应。

也就是说,我看到我的贡献不计入我的提交映射。只要原始存储库不接受我的贡献,就是这种情况。此外,我的工作只被认为是工作,并没有吸引任何其他人与我有同样的愿景。这对我来说是个更大的问题,因为我看到很多人要求这些特性。

我仍然提供我的贡献,原来的项目,但我看到它们不太可能被接受。现在我想让我的叉子成为一个“真正的项目”。虽然我计划在某些时候与原始项目同步,但我想重命名它,并激励人们也为我的项目做出贡献。另外,我希望 GitHub 能够显示这个项目是积极维护的(说到提交映射)。最后,我想把它正式发布出去。

我怎样才能完成这项工作,使我的叉子成为一个成熟的项目?

28049 次浏览

为了做到这一点,你需要 复制存储库。简短的版本是:

  1. 在 GitHub 上创建一个新的存储库。
  2. 克隆要从其父级分离的分支存储库。
  3. 将这个克隆中的所有分支推送到您的新存储库。

首先,你应该检查许可证是否允许你这样做,一般来说,开放源码强制你这样做,因为它是关于没有链的软件进化。如果是这样,那么只需创建一个新的回购。不要忘记给原作者颁奖,并开始你的项目。

这超级简单:

  1. 克隆 某处的回购: git clone git@github.com:USERNAME/REPOSITORY.git(确保你已经克隆了它)
  2. 在 GitHub 中删除 repo (设置 > 选项 > 删除此存储库)
  3. 在 GitHub 中创建一个新的空白回购
  4. git remote set-url origin git@github.com:USERNAME/NEW_REPOSITORY.git(如果回购使用相同的名称,则 NEW_REPOSITORY = = REPOSITORY)
  5. git push

(我使用 ssh,但是如果使用 https,您的 github URL 看起来就像 https://github.com/USERNAME/REPOSITORY.git)

  1. 转到 < a href = “ https://Support. Github.com/contact? tag = docs-general”rel = “ noreference rer”> Github Support

  2. 输入“ detachafork”作为主题。将出现 虚拟助理提示符ーー单击该提示符。

enter image description here

  1. 照说明做!

enter image description here

结果

enter image description here

只需要将源代码、 git 提交、标记和分支转移到远程回购中:

  1. git clone --bare [old/source repository's git url]

    使用 bare标志,只复制工作目录的. git 目录。

  2. cd [recently cloned repository]

  3. git push --mirror [new/target repository's git url]

    使用 mirror标志,它覆盖目标回购并推送所有基于。Git 目录。

  • 在这个阶段,虽然新的 repo 是在远程级别更新的,但是由于存储库是 bare,所以它的本地副本没有常规的 git 工作目录内容(源代码等)。

  • 要在本地获得 new/target 存储库的工作目录,一个简单的方法是再次克隆新的远程 git repo,或者您可以使用现有的。下面提到的 git 目录。

    git clone [cloned .git directory at step 1] [new/target repository's directory]

注:

  • 这将 传递存储库的描述、请求、, 观察者,叉子,观星者,像默认分支配置 如果这些数据需要传递,就像其他答案一样 说,联系 支持 GitHub似乎是一种方法。
  • 想法使用裸和镜像标志复制一个 git 回购是从 这个 GitHub 文档
  • 我知道这个问题已经得到了回答,但我只是添加了相关信息,希望能对其他用户有所帮助。