国内外的git代码仓库网站

国外的:

github.com

gitlab.com

https://codeberg.org/

国内的:

gitee.com

coding.net

https://gitcode.net/

--------------------------

自从 18 年 GitHub 被 Microsoft 收购后,围绕服务开发者,陆陆续续推出了一些十分贴心的服务,比如:

服务 解决问题
Codespaces 代码编写
Actions 自动测试
Packages 托管分发
Code security 漏洞探测
Discussions 用户交流
Sponsors 盈利
Pages 网站托管

不得不说微软在下一盘大棋,不过今天并不是讨论微软的商业战略,GitHub 无疑已经是现在开发者的必备,但还是希望读者能意识到它本质还是家商业公司,在提供这么多好用、免费的功能同时,肯定会在其他方面找回来,比如前不久收费的副驾驶员 Copilot,毕竟天下没有免费的午餐。甚至以后在 VSCode 中出现 Azure 广告我都不会觉得惊讶,也不担心,毕竟我用 Emacs.(https://www.bleepingcomputer.com/news/security/reverse-shell-botnet-gitpaste-12-spreads-via-github-and-pastebin/ )

对于追求 FOSS(Free and open-source software),不想被 GitHub/GitLab 等商业公司 lock in 的读者,推荐了解下面一个托管平台:

  • Codeberg.org由一家位于德国的非盈利组织创办,整个生态都是基于开源软件构建,托管服务基于 Gitea,持续集成基于 Woodpecker CI。它和 GitHub 体验非常类似,Issue、Pages、Packages、Release 都有,是迁移 GitHub 的首选。它可以在不同托管平台间进行 mirror,达到备份效果。后文会介绍到。

下面两篇文章个人觉得写的比较好,供参考,读者可结合自身情况决定是否要迁移:

Codeberg迁移实践

持续集成 CI

迁移的首要问题就是 CI,很难相信一个项目如果没有持续集成,怎么去保证项目质量?所以首先介绍它的迁移:

  1. request-access 这里开 issue,#168 - CI for my side project 这个是我当时创建 的,维护者处理很快,一般 1 天内就会通过
  2. https://ci.codeberg.org 这里给指定项目开通 CI,目前需要一个个开通,有些不方便,但考虑到是一次性工作,所以也不是什么问题。
  3. 开通之后,就可以开始编写流水线,第一次使用可以参考:Getting started | Woodpecker CI,官方也有个示例项目 Codeberg-CI/examples,方便快速上手。比如使用 Hugo 构建网站则可以参考:examples/hugo.yml.

与 GitHub Action 的主要区别在于,Codeberg 的流水线是基于 Docker 镜像来的,这样就不用担心自己需要的功能没有了。

文件树

之前一直使用 Gitako 这个浏览器插件,按照文档来说,它也能够支持 Gitea 类平台,但是我尝试了几次不成功,后面就转到 Git Master 这个插件上了,设置 token 后,公有、私有仓库都支持的很好。

Pages

Codeberg Pages 可以让用户托管静态网站,使用方式和早期的 GitHub Pages 一样,需要创建一个特殊分支。有两个使用方式:

  • 每个用户都可以创建一个 pages 仓库,这个仓库和 GitHub 的 {user}.github.io 类似。访问域名为: {user}.codeberg.page
  • 对于其他项目,创建一特殊分支 pages 和 GitHub 的 gh-pages 类型,访问域名为: {user}.codeberg.page/{project}

如果需要自定义域名,在网站根目录创建一 .domains 文件即可,和 GitHub 的 CNAME 文件类似。

Mirror

作为一名理性的人,永远不要把鸡蛋放在一个篮子里。Codeberg 自带的 mirror 功能,可以在 push 仓库时,向其他托管平台进行 mirror,这一点估计 GitHub 这类商业公司永远也不会提供。使用方式也很简单,可以参考这个文档: