Golang项目托管平台选择:Github还是Gitlab

Golang项目托管平台选择:Github还是Gitlab 随着微软本周收购GitHub, 我想从GitHub转向GitLab,但GitLab上没人关注,是不是就没人能看到我的代码库了?

对此您有什么看法?

如果我去GitLab,您知道怎样才能让人们看到我的代码库吗?

12 回复

等等,难道没有其他人付费使用GitHub吗?哈哈

更多关于Golang项目托管平台选择:Github还是Gitlab的实战系列教程也可以访问 https://www.itying.com/category-94-b0.html


我认为GitHub并非开源项目,但我们仍在使用它。我们需要一个平台,何必去打扰项目所有者呢 😊

使用 Gitea 自托管您的代码。

GitLab 拥有非常出色的 Docker 容器注册表,这对我来说非常实用。但对于我的开源项目,或许应该考虑使用 GitHub……不过 Gitea 曾是个不错的选择。

放松点。收购大约在六个月后才会发生,届时看看你是否还有同样的感受,以及社区在此期间做出了什么决定。我个人认为微软会是一个很好的管理者,我们无需比昨天更加担忧。实际上,担忧更少,因为现在GitHub实际上有了稳定的资金支持。

GitHub!

人们正在转向 GitLab。这毫无道理!

GitLab 也是一个基于 Azure 的网站/平台!

而且我认为, 那些转向 GitLab 的人,并没有任何站得住脚的好理由。

我为什么要为此烦恼呢? 😕

谁在乎所有者是谁呢? 😕

他们之前知道 GitHub 创始人的名字吗? 😕

Gitlab 同样是一个基于 Azure 的网站/平台!

Gitlab 实际上由谷歌云提供支持 为什么以及 GitLab 如何放弃 Microsoft Azure 转向 Google Cloud | VentureBeat

作为故障保护措施,您可以在两个平台上同时托管代码库,将其中一个设为主要版本,另一个作为旧版克隆/镜像。例如在旧版仓库中,可在README文件和描述/标题中添加链接指向活跃代码库。这样无论哪个平台过时/弃用,用户仍能找到您的代码库。

当然,这种方式对go get获取包的方式有所不同,但至少在网页浏览层面,代码库是"可被找到的"。

不要轻信在互联网上看到的一切。

ipinfo 52.167.219.168
{
  "ip": "52.167.219.168",
  "hostname": "gitlab.com",
  "city": "Boydton",
  "region": "Virginia",
  "country": "US",
  "loc": "36.6648,-78.3715",
  "postal": "23917",
  "org": "AS8075 Microsoft Corporation"
}

多年来我一直更喜欢 GitLab 而非 GitHub,主要是因为 CI 是其服务的原生功能,而不像 GitHub 和 Travis 那样需要依赖外部工具。而且它更加灵活,可以使用任意 Docker 镜像来运行测试。

在 GitLab 中你甚至可以获得项目专属的 Docker 注册表。

相较于 GitHub 的 Pull Request,我也更偏爱 GitLab 的 Merge Request 命名方式,不过这仅仅是名称差异而已。

对我来说更重要的是,我可以在议题中点击按钮,系统就会自动创建带有分支的合并请求,我只需要拉取下来就能开始工作。

还有 WIP 功能也很棒,它能防止意外合并未完成的合并请求。

最后但同样重要的是,我喜欢议题和合并请求采用独立编号系统,并通过前缀进行区分:议题使用 # 号,合并请求使用 ! 号。

根据GitLab维基百科记载:

2018年6月,微软收购竞争对手GitHub导致超过25万个项目迁移至GitLab,这一数据已通过推特验证

GitLab正在为迁移到其平台提供协助和折扣#movingtogitlab

根据ipinfo显示,GitLab托管在微软网络上52.167.219.168 IP地址详情 - IPinfo.io

Selection_004

从GitHub迁移到GitLab的原因仍然未知

对于Golang项目的托管平台选择,GitHub和GitLab都是优秀的选择。虽然微软收购GitHub引起了一些关注,但GitHub仍然是全球最大的代码托管平台,拥有庞大的开发者社区。GitLab作为替代方案,提供了完整的DevOps工具链,包括CI/CD、容器注册表等内置功能,对于需要一体化开发流程的团队特别有价值。

关于GitLab上代码库可见性的问题,GitLab的可见性设置与GitHub类似:

  1. 公开仓库:任何人都可以查看
  2. 内部仓库:组织内成员可见
  3. 私有仓库:仅指定成员可见

要让更多人看到你的Golang代码库,可以考虑以下策略:

1. 优化项目描述和README

// 在README中展示清晰的代码示例
package main

import "fmt"

func main() {
    fmt.Println("这是一个高质量的Golang项目示例")
}

2. 使用GitLab CI/CD展示项目质量

# .gitlab-ci.yml
stages:
  - test
  - build

golang-test:
  image: golang:1.21
  stage: test
  script:
    - go test ./...
    - go vet ./...

golang-build:
  image: golang:1.21
  stage: build
  script:
    - go build -o myapp

3. 参与GitLab社区

  • 在GitLab的议题中帮助解决其他开发者的问题
  • 贡献到其他开源项目
  • 使用合适的标签和分类

4. 跨平台推广

  • 在项目README中同时提供GitHub镜像链接
  • 在技术社区分享项目链接
  • 确保go.mod文件正确配置
module github.com/yourusername/yourproject

go 1.21

require (
    github.com/gin-gonic/gin v1.9.1
    github.com/stretchr/testify v1.8.4
)

5. 技术SEO优化

  • 使用有意义的仓库名称和描述
  • 包含详细的项目文档
  • 添加合适的主题标签

GitLab的生态系统虽然用户基数相对较小,但其集成的DevOps工具链对于Golang项目开发非常有利。项目的可见性更多取决于项目质量、文档完整性和社区参与度,而非单纯依赖平台选择。

回到顶部