文章摘要
作者分享了从GitHub迁移到Codeberg的经历,过程虽需手动操作但总体顺利。主要步骤包括设置个人资料、使用Forgejo的迁移功能导入GitHub仓库(需生成访问令牌),并提到迁移成功后网站已不再托管于GitHub Pages。作者认为迁移并不复杂,希望自己的经验能帮助他人。
文章总结
标题:从GitHub迁移至Codeberg的实践记录
发布日期:2025年11月29日
阅读时长:约11分钟
本文详细记录了作者将代码仓库从GitHub迁移至Codeberg的全过程,并分享了实用技巧。
迁移步骤
仓库迁移
- 使用Forgejo(Codeberg底层框架)提供的"从GitHub导入"功能,支持问题(issues)、PR、Wiki和版本发布的完整迁移。
- 需手动生成GitHub个人访问令牌(PAT),但受限于API速率限制,需逐个仓库操作。
链接重定向
- 通过命令行工具批量替换本地仓库中的GitHub链接为Codeberg地址:
bash sed -i 's,github.com/ISSOtm,codeberg.org/ISSOtm,' <文件> - 同步更新Git远程仓库地址:
bash git remote set-url origin git@codeberg.org:ISSOtm/仓库名.git
- 通过命令行工具批量替换本地仓库中的GitHub链接为Codeberg地址:
GitHub仓库标记
- 创建自动化脚本,将原GitHub仓库替换为迁移公告页,并添加归档标记:
bash # 脚本示例:更新README并归档仓库 gh repo edit --description "已迁移至Codeberg" --homepage "https://codeberg.org/ISSOtm/仓库名" gh repo archive --yes
- 创建自动化脚本,将原GitHub仓库替换为迁移公告页,并添加归档标记:
CI/CD迁移
- Codeberg提供两种CI解决方案:Woodpecker(需申请)和Forgejo Actions(兼容GitHub Actions语法)。
- 关键差异:
- 仅支持Linux容器(Ubuntu/Docker)
- 建议使用完整GitURL替代简写action引用
- 推荐"懒加载"运行器以节约资源
网站托管切换
- 放弃GitHub Pages后,选用第三方服务git-pages(Grebedoc实例),优势包括:
- 支持零停机迁移
- 服务端重定向(解决旧链接失效问题)
- 自定义HTTP头(如添加致敬标识)
- 放弃GitHub Pages后,选用第三方服务git-pages(Grebedoc实例),优势包括:
时间成本与心得
- 耗时:迁移45个仓库总计约一个周末
- 挑战:CI配置调整和网站架构重构耗时较多
- 收获:
- 完整保留Git历史与协作功能
- 通过Grebedoc实现更灵活的站点托管
- 减少对商业平台的依赖
现存问题
- GitHub仓库仍保留作为过渡(计划一年后清理)
- 账号暂未注销(需维护其他项目协作)
- 社区可见度可能降低,但实际影响有限
致谢
特别鸣谢git-pages开发者Catherine、SERVFAIL网络团队以及Codeberg/Forgejo贡献者。
相关阅读:《代码迁移至Codeberg的决策思考》
(注:本文对原文技术细节进行了提炼,删减了部分个人化叙述,保留了核心迁移逻辑和实用命令参考)
评论总结
总结评论内容:
- 关于迁移原因:
- 用户注意到近期多个项目从GitHub迁移的现象,询问是否有特定事件或趋势导致这种变化 "I've noticed that several projects...are migrating away from GitHub" (评论1) "More and more people seem to be migrating away from Github" (评论5)
- 关于替代平台:
- 用户关注小型团队或个人开发者需要的私有仓库替代方案 "alternatives...for very small teams or solo devs that need private repos" (评论2)
- 讨论Codeberg是否适合非FOSS项目 "Codeberg, which seems like it's just for FOSS projects" (评论2)
- 关于功能差异:
- 指出Codeberg缺乏GitHub的CI等高级功能 "Does Codeberg provide free CI runners?" (评论3)
- 认为日常使用功能已足够,主要障碍是GitHub建立的网络效应 "Codeberg is already good enough for most day to day workflows" (评论4) "what it doesn't have is the gravitational pull GitHub built" (评论4)
- 其他观点:
- 希望看到更多Mercurial解决方案 "if only there were some Mercurial solutions among the alternatives" (评论5)