前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【靠谱】在不删除和重建 GitHub 仓库的情况下与父(Fork)仓库分离(Unfork)

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

作者头像
Peter Shen
发布2022-03-29 20:57:03
6590
发布2022-03-29 20:57:03
举报
文章被收录于专栏:持续集成持续集成

背景

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

  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" 会自动弹出虚拟助手,选择虚拟机助手

然后根据虚拟助手的问题然后选择答案(如下是部分截图)

最后这些对话会自动转换成文字脚本,然后 Send request,等着 Support 处理就可以了(不会太久)

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

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

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

参考

  • Delete fork dependency of a GitHub repository[1]
  • Unfork a Github fork without deleting[2]

参考资料

[1]Delete fork dependency of a GitHub repository: https://stackoverflow.com/questions/16052477/delete-fork-dependency-of-a-github-repository

[2]Unfork a Github fork without deleting: https://stackoverflow.com/questions/29326767/unfork-a-github-fork-without-deleting/41486339#41486339

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2022-03-14,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 DevOps攻城狮 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 背景
  • 解决办法
  • 参考
    • 参考资料
    相关产品与服务
    对象存储
    对象存储(Cloud Object Storage,COS)是由腾讯云推出的无目录层次结构、无数据格式限制,可容纳海量数据且支持 HTTP/HTTPS 协议访问的分布式存储服务。腾讯云 COS 的存储桶空间无容量上限,无需分区管理,适用于 CDN 数据分发、数据万象处理或大数据计算与分析的数据湖等多种场景。
    领券
    问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档