Github,程序员每天都会用到的网站,可能大家对于它的印象只是一个代码托管平台,平常用它来保存代码,还有可能会提一些 issues。但是今天,我要重新介绍它,它现在已经不仅仅是一个分布式版本控制系统了,它已发展为集成开发工具、自动化流程(CI/CD)及 AI 编程助手(如 GitHub Copilot)的开发者生态系统,提供从代码管理到云端部署的一站式解决方案

开发平台

Github 是一个很棒的开发平台,给广大开发者提供了不错的开发体验。经常有小伙伴会问,如何配置开发环境,我只有一台电脑,配置不够可以开发 xxx 吗,现在有了 Github,一切都是有可能的。Github 围绕开发与测试体验做了许多改进,如果你没有一个适合开发的电脑,你甚至可以只用浏览器就可以完成整个产品的开发,测试,部署等工作。

Github 功能有很多,一篇文章是介绍不完的,不过我个人推荐大家尝试一下以下功能,对于提升开发效率和开发体验是很有帮助的。

Github Codespace

Codespace 是 Github 提供给我们的一个在云端运行的 vscode,可以直接在浏览器中编辑、编译、运行、调试代码,非常方便,如果有机器学习需求, Github 甚至可以提供 GPU 资源,利用 Codespace,资源和环境配置将不再是问题。

image-20250223163020703

Github Copilot

Copilot 在以前是 Github 提供的 AI 自动补全功能,现在的它接入了 GPT4o 模型,已经不仅仅是一个 AI 自动补全助手了,现在的它基本上可以说在 Github 上什么都能做了。代码补全?对 Github 使用有疑问?Api 不会用?获取 Github 操作日志?搜索代码?创建任务?统统可以找它!

image-20250223162927776

Github Actions

Github Actions 提供了一个 Pipeline as Code 的 CI/CD 服务,也就是自动集成、自动部署。它可以实现以下功能:

  • 代码构建:自动编译构建代码,生成镜像文件推送到云端会儿生成 release 发布
  • 部署发布:自动发布软件包到仓库,例如 pypi,npm,maven,docker hub 等
  • 自动化测试:自动运行运行单元测试、集成测试、端到端测试等
  • 定时运行:定时自动更新文章,自动生成测试覆盖率报告等

而且 Actions 还可以接入外部服务,进行静态代码分析,安全漏洞扫描等流程。 如果由于安全隐私的原因,不能使用公有服务,Actions 还支持私有化部署,满足你的隐私需要。

image-20250223163117922

Github security

Github security 是一个安全扫描服务,最近几年,密钥泄露事件时有发生,尤其是开发者在发布开源代码时,无意将密钥信息也上传到了开源代码仓库中,造成安全风险。还有代码漏洞扫描,在开发过程中,可能会无意间引入有漏洞的依赖或者写出有漏洞的代码,security 服务可以自动识别出安全风险,Dependabot自动生成 PR 更新有漏洞的依赖或者带有漏洞的依赖。

image-20250223164406872

Github packages

类似于 Docker hub 的软件包管理功能,可以将自己的软件包上传到 Github packages 中,支持 npm,maven,docker 等软件包保存。

Github Discussions

Github Discussions 是 Github 提供的社区交流功能,允许开发者和用户在社区中针对某些问题或者功能深入交流,而不用每次都提 issues。它与 issues 的区别是:

功能DiscussionsIssues
定位开放式讨论、知识共享任务跟踪、Bug 报告、功能请求
结构化支持分类和标签,类似论坛通常按里程碑、优先级分类
互动性强调多人对话(无固定解决流程)聚焦问题解决(需关闭/标记完成)
适用场景“如何实现 X?”、“建议优化 Y”“修复 Bug Z”、“添加新功能 W”

同时,Discussions 还可以当做一些静态博客的评论区,例如giscus,它可以将评论自动保存到 Github 的 Discussions 中,解决了静态博客无法保存评论数据的问题。我的博客评论区就是使用 Github Discussions 实现的。

Github Pages

GitHub Pages 是 GitHub 提供的免费静态网站托管服务,可以借助多种框架自动生成静态 html 文件,只要将静态文件推送至指定仓库( <用户名>.github.io),GitHub 会自动构建并发布到专属域名(支持绑定自定义域名及 HTTPS)。它深度集成 Jekyll 静态生成器,可一键应用主题模板,也兼容 Hugo、VuePress 等工具,适合搭建技术博客、开源项目文档。image-20250223212822417

GitHub code search

此功能可以搜索 Github 上所有公开仓库的代码,Github 默认的搜索搜索范围比较广,可以搜索到仓库,用户,issues 等内容,而 GitHub code search 只会搜索代码,而且支持正则表达式,布尔运算等高级功能,且支持对搜到的结果跳转到定义位置。此功能适合开发者快速定位代码片段,不会受到其他内容的影响。

以上这些功能几乎都有免费额度可以使用,基本上日常开发够用了。

Github Next

GitHub Next 是 GitHub 设立的 前瞻性研发团队,原文是这么说的:GitHub Next investigates the future of software development.,它专注于探索软件开发的未来可能性,通过实验性项目、原型工具和跨学科研究,推动开发工具、协作模式及技术生态的革新。其核心目标是为开发者社区探索并定义下一代软件开发范式。

Github Next 中有很多有意思的项目在进行中,感兴趣的小伙伴可以申请部分工具的早期测试申请。

image-20250223172610296

Github 生态

基于 Github 生态,可以做很多事情,很多 SaaS 服务可以与 Github 集成,降低开发复杂度,提升开发体验和效率。例如:

  • AWS/Azure/Google Cloud:通过 Actions 一键部署到云服务器、Kubernetes 或 Serverless。
  • Vercel/Netlify:前端项目自动构建与发布。
  • Cloudflare:全球最流行的 CDN,现在还出了对象存储和 Cloudflare pages,将其与 Github 关联后,可以将自己的网站部署到 Cloudflare,借助其全球 CDN 将内容分发到全球。
  • Railway:使用 Github 集成后,可以部署后端代码,包括数据库,中间件等等,支持多种后端框架,支持绑定自定义域名,支持自动申请 https 证书。

Github写作

在 Github 上写作可以说是相当简单了。只要有一个 Github 账号,并且创建一个仓库,新建一个 md 文件,就可以开始创作了。我们提交的内容是 markdown 文本,浏览器会自动将其渲染成 html,然后在浏览器上显示出来,并且还能提供版本管理功能,不会丢失提交。

如果觉得比较麻烦或者 md 文件不好管理,可以使用静态博客生成器。例如 hexo,它可以将 md 文件自动渲染成 html 文件,只需要执行指令,就可以借助 Github pages 将其部署成一个静态网站。整个过程中不用使用任何服务器资源,也不用手动部署,配合 Github Actions 整个过程都是全自动的,我们需要做的只是新建一篇文章,commit 后文章就会被自动发布,我现在在写的这篇文章就是这么来的。如果想要自定义域名,Github pages 也是支持的,并且自动给域名申请 https 证书,全程免费全自动,维护成本几乎为 0。

Github学习

Github 上有超多的开源项目,但并不是每个开源项目都是软件源代码,也有很多开源项目是教程类的项目,如果想要在 Github 上找一些学习教程,其实是相当简单的。

以 Python 为例,比较有代表性的教程就是,截止到目前已经收获了235k srar,资料的质量还是相当高的。还有 Java,比较受欢迎的是这个,截止到目前也有 148k star 了,质量也很高。

总结

希望这篇文章可以让大家对 Github 有更多的了解,如果你还没有 Github 账号,那么去注册一个吧!

本文章首发于个人博客 LLLibra146's blog

本文作者:LLLibra146

更多文章请关注公众号 (LLLibra146):LLLibra146

版权声明:本博客所有文章除特别声明外,均采用 © BY-NC-ND 许可协议。非商用转载请注明出处!严禁商业转载!

本文链接https://blog.d77.xyz/archives/cfbba8e7.html


LLLibra146
35 声望7 粉丝

会修电脑的程序员