跳过正文
Background Image
  1. Posts/

靠谱:在不删除和重建 GitHub 仓库的情况下与父(Fork)仓库分离(Unfork)

·693 字·2 分钟· ·
沈显鹏
作者
沈显鹏
目录

背景
#

有开发者、甚至公司可能会遇到过以下几个问题:

  1. 最开始 Fork 了一个仓库,之后做了大量的修改,从功能到开发语言,已经与父仓库各自发展了
  2. 由于是 Fork 的仓库,在每次提 Pull Request 的默认目标分支是父仓库,一不注意就会提 PR 到父仓库里去了
  3. Fork 的仓库有人贡献并使用了,但不能显示贡献者,以及该项目被哪些其他的项目所使用,这不利于项目的发展

基于这些问题,开发者会考虑与父仓库进行分离,但目前 GitHub 没有提供 Unfork/Detach 的功能。

如果直接删除项目并重建可以达到分离的目的,但这样会丢失一些重要的信息,比如项目中的 Issues,Wikis 以及 Pull Requests 等。

Unfork 跟某节旗下某引擎白嫖 Apache SkyWalking 有本质区别,它更像是 Hudson 和 Jenkins 的分道扬镳。

解决办法
#

在经过一番调查和测试,目前最可行的办法就是通过 GitHub Support 来处理,具体操作如下:

  1. 打开这个链接:https://support.github.com/contact?tags=rr-forks
  2. 选择你的账户或是组织,然后在 Subject 中输入 “unfork” 会自动弹出虚拟助手,选择虚拟机助手
    视图 1
  3. 然后根据虚拟助手的问题然后选择答案(如下是部分截图)
    视图 2
  4. 最后这些对话会自动转换成文字脚本,然后 Send request,等着 Support 处理就可以了(不会太久)
    视图 3

这里要注意一下,如果你的仓库被其他人 Fork 了,你想跟父仓库分离之后继续保留你的子仓库的 Fork 记录,你应该选择 “Bring the child forks with the repository”。

另外,通过其他方式,比如命令 git clone --baregit push --mirror,可以保留完成的 Git 历史,但不能保留 Issues,Wikis 以及 Pull Requests 等信息。

希望对有需要的你有所帮助。

参考
#


转载本站文章请注明作者和出处,请勿用于任何商业用途。欢迎关注公众号「DevOps攻城狮」

相关文章

Error: Permission denied (publickey)
·276 字·1 分钟
本文介绍了如何在配置多个 SSH Git Key 时解决 “Permission denied (publickey)” 错误,确保 GitHub 和 Bitbucket 的 SSH 连接正常工作。
如何将 Bitbucket 仓库同步到 GitHub
·1218 字·3 分钟
介绍如何通过 Jenkins 将 Bitbucket 仓库的 master 分支同步到 GitHub。
GitHub Actions 还能这么玩?自动将发布的博客文章更新到 GitHub 个人主页
·1210 字·3 分钟
本文介绍了如何使用 GitHub Actions 自动将发布的博客文章更新到 GitHub 个人主页,提升个人主页的动态性和可读性。
Git 常用命令备忘录
·869 字·2 分钟
本文总结了 Git 的常用命令和技巧,帮助开发者快速查找和使用 Git 命令,提高工作效率。
解决在 AIX 上 Git Clone 失败的两个问题
·1279 字·3 分钟
本文记录了在 AIX 上使用 Jenkins 进行 Git Clone 时遇到的两个问题及其解决方法,包括依赖库加载失败和 SSH 认证失败。
通过解除文件资源限制:解决在 AIX 使用 Git 下载大容量仓库失败问题
·482 字·1 分钟
在 AIX 系统中遇到 Git 下载大容量仓库时因文件大小限制导致失败,通过修改 ulimit 设置解决问题。