当前位置:网站首页 > 编程语言 > 正文

国内的github(国内的githup平台)



rebase 和 merge 不是二选一的关系,要协同使用,毕竟作者设计出两个命令不是让你挑一个来用的。

一个最简单的模型,从 master 分支 checkout 出几个本地 feature 分支,你或者你的团队在协同开发某个 feature-a 时,可能别人已把 feature-b 的代码 merge 回 master 了,所以应该及时将 master 的改动 rebase 到你的本地分支,顺便 fix conflicts。即:

$ git switch feature-a $ git rebase master fix conflicts... $ git rebase --continue

当你开发完成 feature-a 时,应该将改动 merge 回 master。即:

$ git switch master $ git merge --no-ff -m "Merge branch 'feature-a'" feature-a

在本地分支中使用 rebase 来合并主分支的改动,是为了让你的本地提交记录清晰可读。(当然, rebase 不只用来合并 master 的改动,还可以在协同开发时 rebase 队友的改动。)

在主分支中使用 merge 来把 feature 分支的改动合并进来,是为了保留分支信息。

如果全使用 merge 就会导致提交历史繁复交叉,错综复杂。如果全使用 rebase 就会让你的 commits history 变成一条光秃秃的直线。

一个好的 commits history,应该是这样的:

* e2e6451 (HEAD -> master) feture-c finished |\ | * 516fc18 C.2 | * 09112f5 C.1 |/ * c6667ab feture-a finished |\ | * e64c4b6 A.2 | *  A.1 |/ * 2b24281 feture-b finished |\ | * c B.4 | * 4bfefb8 B.3 | * eb13f72 B.2 | * c2c62b9 B.1 |/ * bbbba82 init

而不是这样的:

* 9f0c13b (HEAD -> master) feture-c finished |\ | * 55be61c C.2 | * e18b5c5 merge master | |\ | |/ |/| * | ee549c2 feture-a finished |\ \ | * | 51f2126 A.3 | * | 72118e2 merge master | |\ \ | |/ / |/| | * | | 6cb16a0 feture-b finished |\ \ \ | * | | 7b27b77 B.3 | * | | 3aac8a2 B.2 | * | | 2259a21 B.1 |/ / / | * | 785fab7 A.2 | * | 2b2b664 A.1 |/ / | * bf9e77f C.1 |/ * 188abf9 init

也不是这样的:

* b8902ed (HEAD -> master) C.2 * a4d4e33 C.1 * 7e63b80 A.3 * c A.2 * 84b2500 A.1 * cb4c4cb B.3 * 2ea8f0d B.2 * df97f39 B.1 * 838f514 init

就这么简单。


这个挺久之前的回答在最近几天收到了挺多赞,同时也有人在评论区提到了 trunk-based,所以我必须补充一下,当初写这个回答时确实有一定的局限性,如果你认同 TBD 这样的开发理念,那确实可以完全不使用 merge 命令,采用这种模型的人主要认为其适用于持续交付,我个人觉得其最大的优势还是简单吧,目前还没有使用过。

多人协同工作应该用 merge,一个人写代码可以用 rebase。

merge会产生分支,然而从版本管理的角度,多人的工作本来就应该位于不同的分支。单纯为了线条好看而扭曲了实际开发过程中的事实,并不是可取的行为。

如果需要merge,本来就是因为在你提交之前有别人修改了代码,那么别人的代码事实上确实就是与你并行修改。从流程上讲,别人的代码与你并行修改,并且同时都基于某个早先的基线版本,那么这样的两组修改就确实应该位于不同的分支。分支归并正确的显示了多人协同开发过程中实际发生的客观事实。

因此显然应该选择merge,版本管理软件的职责就是准确的记录开发历史上发生过的所有事情,merge能确保你基于修改的基点忠实的反应了情况,这种情况下merge肯定是更准确的。

但如果是你自己一个人写的代码,多余出来的分支确实是不必要的,本来就应该把线整理成线性。那么确实可以考虑使用rebase。——这种情况下一般发生于自己一个人使用了多台电脑,多台电脑各有不同的未提交代码的情形,建议考虑rebase。

结论重复一下:归并目标是他人代码,用来解决两个不同开发者开发的代码冲突的时候,用merge,归并目标是自己代码,用来解决自己在两台不同电脑上修改代码的冲突的时候,用rebase。

业务决定了业务流程,业务流程决定了开发流程,开发流程决定了工具。所以这本质上是个业务问题,不是技术问题。

传统的客户端软件,好像十多年前的 Windows 和 Office 这样的,对应的是传统的 Git Flow。使用这种流程,意味着接受多个长期并存的分支,因此分支之间的 merge 无法避免,只有 merge 支持两个或以上分支的合并,rebase 不可能有多个分支。

传统客户端软件适应这样的开发流程,因为它们的发布流程和商业模式就是如此。Windows XP 发布了,就卖一次钱。Windows 7 发布,就再卖一次钱。Windows 7 继续往前开发,但必须有人维护 Windows XP,给它做补丁,补丁积累起来就发布 SP。这种按大版本发布和卖钱的客户端软件,天生就要有多分支长期共存,一个补丁要给不同的大版本补上,之后每个大版本继续平行往前走。这时候不同版本的分支之间必须进行 merge。

互联网开发不存在这个问题,你今天访问过的网站,明天悄悄升级了你也不知道,同时你没办法去访问昨天的版本,也不可能因为昨天的版本有问题而需要给昨天的版本打补丁,一切都是机基于今天的版本往前走。这就是基于主干的开发流程,有些人把这叫做 GitHub Flow,本质区别就是没有持久的分支。所有分支都应该尽快通过 code review 追加到主干顶端,这时候只应该允许 rebase。

因为互联网思维的主导地位,现在很多客户端软件也都开始进行基于主干的开发了。应用商店的版本号也不允许多版本共存,不可能一个应用发布了 3.0 后还回去给仍在使用 2.4 的用户升级一下 2.4.1。所以现在基本上大家都只用 rebase 了。

再见 2022,你好 2023!

HelloGitHub 也随着 2023 年的到来,更新到了第 81 期 开始迈向第 7 个年头啦。

在过去的 2022 年,我们一共发布了 12 期月刊、分享了 502 个开源项目,HelloGitHub 能够分享这么多有趣、好玩的开源项目,离不开开源爱好者的推荐、项目作者的自荐以及团队成员的贡献。在 2022 年发布过的众多开源项目中,你最喜欢哪个开源项目呢?哪些开源项目让你印象深刻?

下面就让我们一起来看看 2022 年《HelloGitHub 月刊》最受欢迎的 10 个开源项目,为了尽量涵盖较多的类别,就从 C++、Python、Java、JavaScript、Go、C#、C、Rust、CSS 每个类别挑选一个组成了 Top10 开源项目。排名并不重要,重要是的是不能让你错过这些好玩的开源项目。

话不多说,开始今年的 HelloGitHub 年度盘点!

Star 数:1.9K|编程语言:C++

这是一款基于 SDL2 开发的 2D 游戏,作为《金庸群侠传》C++ 复刻版,它的资源大部分来自《金庸群侠传》DOS 版本,复刻版除了经典的回合制战斗系统,还在加入了受《黑帝斯》启发的即时战斗系统。或许大佬们的重温经典,就是用自己擅长的编程语言把游戏重新实现一遍吧。

地址 github.com/scarsty/kys-

Star 数:3.2K|编程语言:Python

它是基于 Python 的异步特性构建的聊天机器人框架,可以轻松处理大量的消息。还提供了命令行脚手架,仅用几条命令就可以完成项目搭建。支持多种 IM 平台,有效地帮助开发人员快速构建聊天机器人、消息通知等项目。该项目代码质量高、社区活跃,它上得了生产环境,下能搞定一次性脚本。

地址: github.com/nonebot/none

Star 数:5.5K|编程语言:Java

这是一种 JVM 的非侵入式运行期 AOP 解决方案。简单地说就是如果线上 Java 服务出现故障,需要加一条日志定位问题,通过该项目就可以在不重启服务的情况下,完成增加日志的操作。它还支持线上故障模拟、请求录制和结果回放等功能。

地址: github.com/alibaba/jvm-

Star 数:20.6K|编程语言:TypeScript

一款改变你查看 JSON 数据习惯的工具,它不是简单地格式化 JSON 数据,而是将其数据转化成节点,通过类似脑图的形式展示。支持放大/缩小、展开/收缩、搜索节点、导出图片等操作,你还可以通过部署服务,将它变成免费的在线服务。

地址: github.com/AykutSarac/j

Star 数:4.4K|编程语言:Go

一个极简主义的 feed 阅读器,它的“简”是由内而外,内部代码部分不使用 Web 框架和 ORM 仅采用 Go+PostgreSQL+JS 实现,界面朴实无华、功能精简实用,支持快速自建、源管理、自动获取内容、快捷键、用户系统等,这一切不多不少刚刚好。Go 初学者可以通过阅读不依赖任何框架、“纯粹”的 Go 代码,看清 Web 开发的原理。

地址: github.com/miniflux/v2

Star 数:19.2K|编程语言:C#

一款完全免费、支持中文、安装简单、跨平台、功能齐全的媒体库管理系统。它能把原本躺在文件夹里的视频文件,变成包含封面、描述、评分、演员表等信息的“影碟”,让视频整整齐齐、赏心悦目,还支持视频续播、订阅更新、多端可看,让你可以远离广告优雅地追剧。要说缺点的话,我感觉就是得花时间折腾一番才能感受到它的魅力。

地址: github.com/jellyfin/jel

Star 数:6.7K|编程语言:C

这是一款可视化开发游戏的工具,可用于快速构建复古冒险游戏。通过该项目可以实现仅仅拖拽的方式,就能制作出复古风格的 Game Boy 游戏,不会编程也可以开发游戏。还支持导出 ROM 或发布成在线游戏,适用于 macOS、Linux 和 Windows 操作系统。

地址: github.com/chrismaltby/

Star 数:11.6K|编程语言:Rust

该项目是 Rust 官方开源的制作 Markdown 电子书工具,功能上类似 Gitbook。它可以将 Markdown 文件制作成在线书籍,支持代码高亮、可集成搜索、多主题等功能,简单易用非常适合创建教程、API 文档、开源书籍等。

地址: github.com/rust-lang/md

Star 数:2.6K|编程语言:CSS

该项目提供了 100 种不同样式按钮的 CSS 源码,不仅如此还支持在线查看效果以及调试。

地址: github.com/ui-buttons/c

Star 数:3.3K|编程语言:Other

大学里的计算机课程往往只专注于讲授数据结构、操作系统这些知识,对于编程开发中常用的工具则留给学生自行学习。在 MIT 这个课程中,你可以了解和掌握命令行(shell)、文本编辑器(Vim)、版本控制系统(Git)等强大的工具,越早接触越能更加熟练地使用它们,有助于未来的职业生涯。

地址: github.com/missing-seme
中文: missing-semester-cn.github.io

HelloGitHub 的年度 Top10 榜单,并不是简单地根据项目访问数拉个表单就完事儿了。

为了让更多人在 HelloGitHub 找到喜欢的开源项目,不管擅长什么编程语言、职业是学生还是程序员。我多花了几倍的时间,从多个主流分类中挑选出几个较为受欢迎的几个开源项目,然后根据大家的评价、留言、访问比等数据层层筛选,最终每个分类只留一个开源项目,反复多次才制作出这个榜单。

HelloGitHub 一直秉承着分享 GitHub 上有趣、入门级的开源项目,我们做的一切都是为了:

让你找到喜欢的开源项目,爱上开源参与开源。

一切美好风景都在路上,希望你和开源最美的那张合影上有 HelloGitHub。

由于篇幅有限,还有很多优秀的项目没能入选,你可以在往期的《HelloGitHub 月刊》中找到它们。

以上就是本文的所有内容,如果您觉得这篇文章写得还不错,就请给我点一个,您的支持就是我更新的动力。我们下期见~

论文:《Towards Robust Blind Face Restoration with Codebook Lookup TransFormer 》

Github 4.8k Stars! | CodeFormer: 地表最强AI马赛克去除神器! (附实战教程)

作为一名合格的研发人员,我们需要时刻了解在技术的最新进展方面保持领先地位的重要性,特别是人工智能这种瞬息万变的行业。在这篇文章中,我们将为大家介绍一个强大的 AI 模型,经过训练可以根据提供的图像进行高质量复原。使用此模型,你只需上传要恢复的图像,它就会显着提高图像质量!

话不多说,先上一张效果图:

受光照、监控探头本身的像素、聚焦区域以及人体运动的限制,人脸图像通常会模糊甚至变形。另一方面,盲人脸复原(Blind face restoration 本身就是一个极具挑战性且高度不适定问题(ill-posed problem)。

这里可能很多读者不了解这个专业词汇,笔者为大家科普下。 适定问题[1](well-posed problem)和不适定问题(ill-posed problem)均是数学领域的术语。前者需满足三个基本条件,若有一个不满足则可称为不适定问题:
条件一: a solution exists,即必须存在解;
条件二:the solution is unique,即解必须唯;
条件三:the solution's behavior changes continuously with the initial conditions,解能根据初始条件连续变化,不会发生跳变,即解必须稳定

因此,这通常需要适当的辅助引导(先验)来完成,主要有两种方式:

  • 改进从退化输入到所需输出的映射;
  • 补充输入中丢失的高质量细节。

听说马赛克是阻碍人类进步的绊脚石,今天小编将肩负重任为大家介绍的是人脸复原人气之王——CodeFormer[2],you南洋理工大学S-Lab实验室发表在 NeurIPS 2022 的一篇著作。这是一种基于 Transformer 的预测网络,能够对低质量人脸的全局组成和上下文进行建模以进行编码预测,即使在输入信息严重缺失的情况下也能复原出与目标人脸非常接近的自然人脸图像。此外,为了增强对不同退化的适应性,本文还提出了一个可控的特征转换模块(controllable feature transformation module),允许在保真度和质量之间进行灵活的权衡。得益于带有丰富先验的 codebook 和网络整体的全局建模能力,CodeFormer 在质量和保真度方面都始终优于最先进的技术,显示出卓越的退化鲁棒性。最后,对合成和真实世界数据集的广泛实验结果也充分验证了本文方法的有效性。

Overview of CodeFormer

上图为 CodeFormer 的整体架构图,下面简单介绍下:

首先,学习一个离散的 codebook 和一个解码器,通过自重构学习来存储面部图像的高质量视觉部分。

其次,使用固定好的的 codebook 和解码器,随后引入一个用于编码序列预测的 Transformer 模块,对低质量输入的全局人脸组成进行建模。

最后,可控特征转换模块用于控制从低质量编码器(LQ Encoder)到解码器的信息流。

需要注意的是,此连接是可选的,在适当的情况下我们也可以禁用它以避免在输入严重退化时产生不利影响,并且可以调整标量权重(scalar weight) w 以权衡质量保真度

目前有几种方式供大家使用。

第一种是直接上 Github[3] 按照 README 文档配置环境,加载模型权重推理,懂的都懂,此处省略。

第二种是通过 Web[4]端直接访问,作者已将该模型打包至抱抱脸平台上,有兴趣的读者可以直接线上使用。

第三种是通过 GUI[5]可视化界面直接在本地运行,无惧隐私泄漏,无须安装配置编译环境,一键运行。

  1. 下载压缩包,解压到本地目录。
  1. 准备好两个文件夹,一个输入文件夹存放待复原的图片,另一个是输出文件夹存放修复好的图片。
  2. 选择相应的功能,目前支持对人脸(抠好的)、人体(内置了人脸检测和对齐模型)、视频的推理。

本项目基于 DeepFaceLabCodeFormer 完成,其中人脸检测模型基于 retinafaceyolov5,背景增强基于 RealESRGAN_x2plus 模型权重。需要注意的是,全图清晰化针对的是全身进行复原,建议使用完之后对截取过的人脸再使用一遍人脸图清晰化的功能。

如果您也对人工智能和计算机视觉全栈领域感兴趣,强烈推荐您关注有料、有趣、有爱的公众号『CVHub』,每日为大家带来精品原创、多领域、有深度的前沿科技论文解读及工业成熟解决方案!欢迎扫码加入 CVHub 官方学术&技术交流群,一起探讨更多有趣的话题!

微信号

[1] well-posed problem: en.wikipedia.org/wiki/W

[2] CodeFormer: openreview.net/forum?

[3] github: github.com/sczhou/CodeF

[4] Web: huggingface.co/spaces/s

[5] GUI: freedidi.com/7770.html


如果您也对人工智能和计算机视觉全栈领域感兴趣,强烈推荐您加入有料、有趣、有爱的公众号『CVHub』,每日为大家带来精品原创、多领域、有深度的前沿科技论文解读及工业成熟解决方案!欢迎添加小编卫星号: cv_huber,备注"知乎",加入 CVHub 官方学术&技术交流裙,一同探讨更多有趣的话题!

被 GPT 和 OpenAI 刷屏了一个多月,现在 GitHub Trending 已经没有什么和 gpt 无关的项目了,但是好在总有优秀的开源项目拯救我的项目疲惫。像是贴心好用的反向代理 pgrok,据说是穷人的 ngrok 替代品;拯救 SQL Boy 的 textSQL,现在你可以不写 SQL 来查数据了。

除此之外,高性能打包工具 rspack 高兴起来,打包的工作分分钟就搞定了,scrcpy 则是名声在外的投屏神器,而 nicegui,Nice!Python 工程师们可以有漂亮的 UI 用了。

以下内容摘录自微博@HelloGitHub 的 GitHub Trending 及 Hacker News 热帖(简称 HN 热帖),选项标准:新发布 | 实用 | 有趣,根据项目 release 时间分类,发布时间不超过 14 day 的项目会标注 New,无该标志则说明项目 release 超过半月。由于本文篇幅有限,还有部分项目未能在本文展示,望周知

  • 本文目录
    • 1. 本周特推
      • 1.1 反向代理:pgrok
      • 1.2 文本转 SQL:textSQL
    • 2. GitHub Trending 周榜
      • 2.1 高性能打包工具:rspack
      • 2.2 SD GUI:ComfyUI
      • 2.3 neovim 配置:AstroNvim
      • 2.4 Android 镜像:scrcpy
      • 2.5 Python 搞定 UI:nicegui
    • 3. HelloGitHub 热评
      • 3.1 炫酷的 Windows 终端软件:FluentTerminal
      • 3.2 AirDrop 的开源替代方案:localsend
    • 4. 往期回顾

主语言:Golang

New 经济实惠的 ngrok 替代品,一个通过 ssh 远程端口转发多租户 HTTP 流量代理。

GitHub 地址→ github.com/pgrok/pgrok

主语言:JavaScript

New 现在,你不会写 SQL 也没关系,textSQL 可以将自然语言使用 GPT-3.5 转换 SQL,用于查询数据。

GitHub 地址→ github.com/caesarHQ/tex

本周 star 增长数:900+,主语言:Rust、JavaScript

New 基于 Rust 的高性能模块打包工具。特性:

  • 启动速度极快:基于 Rust 实现,构建速度极快,带给你极致的开发体验。
  • 闪电般的 HMR:内置增量编译机制,HMR 速度极快,完全胜任大型项目的开发。
  • 兼容 Webpack 生态:针对 Webpack 的架构和生态进行兼容,无需从头搭建生态。
  • 内置常见构建能力:对 TypeScript、JSX、CSS、CSS Modules、SaSS 等提供开箱即用的支持。
  • 默认生产优化:默认内置多种优化策略,如 Tree Shaking、代码压缩等等。
  • 框架无关:不和任何前端框架绑定,保证足够的灵活性。
GitHub 地址→ github.com/web-infra-de

本周 star 增长数:1,800+,主语言:Python、JavaScript

New 一个强大的、模块化的、具有图形/节点界面的 stable diffusion GUI,你无需编码任何东西就能搞定 stable diffusion。

GitHub 地址→ github.com/comfyanonymo

本周 star 增长数:1,150+,主语言:Lua

AstroNvim 是一个美观且功能丰富的 neovim 配置,可扩展,支持同其他优秀的插件一起工作。特性:

  • 带有 Neo-tree 的文件浏览器
  • 支持 Cmp 的自动填充
  • 集成了 Gitsigns 的 git
  • 使用 Heirline 的 Statusline、Winbar 和 Bufferline
  • 使用 Toggleterm 的终端
  • 用 Telescope 进行模糊查找
  • 用 Treesitter 实现语法高亮
  • 用 Null-ls 进行格式化和提示
  • 支持 Native LSP 的语言服务器协议
  • 用 nvim-dap 调试适配器协议
GitHub 地址→ github.com/AstroNvim/As

本周 star 增长数:1,550+,主语言:C、Java

安卓手机镜像,可以在 Windows、macOS、Linux 上起一个和你 Android 设备相同的镜像,让你通过电脑端与你的手机端进行交互。

GitHub 地址→ github.com/Genymobile/s

本周 star 增长数:850+,主语言:Python、JavaScript

New 用 Python 搞定 Web UI,有了它,你可以用 Python 创建按钮、对话框、Markdown 文件、3D 场景。

GitHub 地址→ github.com/zauberzeug/n

在这个章节,我们将会分享下本周 HelloGitHub 网站上的热评项目,HG 开源项目评价体系刚上线不久,期待你的评价~

主语言:C#

基于 UWP 的 Windows 终端应用,拥有强大的自定义主题模块,能够轻松定制出风格各异的主题。提供了中文选项,支持多窗口、SSH 和搜索等功能。

主语言:Dart

可以通过本地网络与附近的设备,安全地共享文件和消息,此过程不需要互联网,不需要外部服务器,支持 Windows、Linux、macOS、Android、iOS 设备。

往期回顾:

  • 你的梦想家居「GitHub 热点速览」
  • 开箱即用,你不可错过的好东西「GitHub 热点速览」

以上为 2023 年第 11 个工作周的 GitHub Trending 如果你 Pick 其他好玩、实用的 GitHub 项目,来 HelloGitHub 和大家一起分享下哟

我早前写过一篇介绍 GitHub 上开源游戏的文章:《误入 GitHub 游戏区,结果意外地收获颇丰》,文中介绍了 5 款有趣、好玩的开源游戏,虽然当时那篇文章收获了广大读者的肯定,但也有读者反馈:“这些游戏看着是真有意思,但是不会安装,玩不上干着急啊!” 读者的需求就是我前进的方向,与其“讲道理”不如直接砍掉门槛,所以我开始筹划写一篇点开就能玩的开源游戏集合。

在寻找有趣的在线游戏开源项目的时候,我发现虽然它们在游戏品质、画面方面,比不上那些 PC 游戏,但它们也有自己的优点,比如:无需安装操作简单玩法新颖益智放松,这些游戏基本上用碎片时间(等餐、路上、开会?)就可以马上开一盘,重点是因为它们运行在浏览器上,所以其中大部分游戏支持手机端玩耍,简直不要太爽!

今天,我终于攒够了 10 款开源的在线游戏,一次性全部分享给大家。HelloGitHub 精选的开源项目,必定有它的过人之处,接下来就让我们一起“边看边玩”吧!

Star 数:2k|编程语言:JavaScript|手机端:支持

这是一款受到俄罗斯方块启发,快节奏的益智游戏。Hextris 大体上和俄罗斯方块玩法一样,通过控制方向消除下落的块。

玩家可以通过 左/右 方向键旋转六边形,让下落的彩色条块落在指定的边上,向下方向键可以加快下落速度。通过连接 3 种或以上相同颜色的块,来清除块并获得积分,连续消除有积分加倍的奖励,当色块突破深灰色六边形时游戏结束。

源码: github.com/Hextris/hext
地址: hextris.io/

Star 数:6.3k|编程语言:JavaScript|手机端:不支持

一款有趣的纯文字冒险类游戏,支持中文。在游戏中玩家通过收集材料,增加建筑、制作道具、武器,感受有趣的冒险之旅。如果你喜欢 RPG 类的游戏,那它一定会是你的菜。

该游戏前期有些无聊只能点击 添柴,没玩过的同学刚开始容易摸不着头脑,因为事件触发需要时间,看滚动的文字+点击 添柴 耐心等 30 秒,就会触发新的事件,从而开启你的冒险之旅。游戏默认会保存游戏进度到本地,另外还支持导入/导出存档。

源码: github.com/doublespeakg
地址: adarkroom.doublespeakgames.com

Star 数:9.6k|编程语言:JavaScript|手机端:支持

说到在线文字游戏就不得不提到,前两年特别火的一款开源游戏「人生重开模拟器」。

游戏里,玩家只需在开局时选天赋、分配初始属性,后面就是看岁月如白驹过隙,转眼就过完了这一生,不满意的话可以点击 再次重开 即可开启新的人生。该游戏凭借诙谐幽默的文案,和出乎意料的结局,风靡一时。现在除了上述的经典模式玩法,还新增了名人模式,体验名人的一生。

源码: github.com/VickScarlet/
地址: liferestart.syaro.io/pu

Star 数:12.9k|编程语言:Scala+TypeScript|手机端:支持

这是一款承诺永远免费、无广告的国际象棋游戏,支持中文。该项目不单单是一款国际象棋的游戏,更像是关于国际象棋一切的平台。因为它除了可以在线对战、人机对战、好友对战、比赛等玩法,还有学习国际象棋的教程、社区以及观战和直播。

源码: github.com/lichess-org/
地址: lichess.org/zh

Star 数:1.2k|编程语言:JavaScript|手机端:支持

一款类似扫雷的游戏,玩法和规则和扫雷基本上一样,这里是排除未知块背后的黑洞。

开局可以选择游戏难度,设置宽/高和黑洞数量。玩家点开一个未知块后,会出现数字或者黑洞,如果是数字的话,则该数字代表周围的黑洞数量,比如「1」则代表该数字周围的块背后有一个黑洞,如果点到黑洞则游戏结束。左上角显示的是未知块的数量,右上角是耗费/最佳时间,下面的 switch 按钮则可以切换到标记模式。

源码: github.com/GoogleChrome
地址: proxx.app/

Star 数:7.4k|编程语言:TypeScript|手机端:支持

复刻经典的俄罗斯方块,该项目采用 React+Redux+Immutable 的技术栈。这款游戏的复刻程度堪称像素级别,不仅体现在画面上,还有流畅度、玩法、音效等方面都做到了极致。

源码: github.com/chvin/react-
地址: chvin.github.io/react-t

Star 数:1.6k|编程语言:C|手机端:不支持

一款打高尔夫的游戏,共有 20 个关卡。虽然游戏画面很糙但我玩得挺上头,亮点是碰撞反应和关卡设计得很有意思。

源码: github.com/mgerdes/Open
地址: mgerdes.github.io/minig

Star 数:1.9k|编程语言:Flutter|手机端:不支持

这是谷歌开源的一款采用 Flutter 和 Firebase 构建的经典弹球游戏。开局时有操作提示:A(左过滤器)/S(发球)/B(右过滤器),游戏制作得十分精致。

源码: github.com/flutter/pinb
地址: pinball.flutter.dev/

Star 数:7.2k|编程语言:Python|手机端:支持

一款在线的中文 DOS 游戏集合,目前支持 1800+ 款游戏。

源码: github.com/rwv/chinese-
地址: dos.zczc.cz/

Star 数:9.6k|编程语言:JavaScript|手机端:支持

这是一个培养习惯的开源应用,那它为什么会出现在游戏集合里呢?因为它会将你培养习惯的过程,当作一个 RPG 角色扮演游戏。

你需要根据设定的习惯,创建对应现实中需要完成的任务,当你完成一个任务时会获得相应的经验和金币,这些东西可以用来提升虚拟人物的等级以及购买装备。但当任务失败时,对应的将失去血量作为惩罚。随着你的等级提升,将会开启更多的玩法,比如:孵化宠物、职业、专属技能、组队打副本等。

源码: github.com/HabitRPG/hab
地址: habitica.com/

写这篇文章的时候,我发现一款经典的游戏会有很多同类型的开源项目,比如在 GitHub 上搜「俄罗斯方块」会找到 5 万个开源项目,但是能够做到和文中的「Hextris」和「react-tetris」,同等品质的开源项目却寥寥无几。

其实,功能大差不差都一样,但是每个项目特有的“东西”不会一蹴而就,这需要持续的迭代、花费大量的精力和时间,才能让项目脱颖而出。

还是那句话:用工匠精神打磨开源项目定将铸就经典,以上就是本期介绍的所有开源游戏项目,如果你喜欢本期内容就 点赞+分享 支持一下吧!

到此这篇国内的github(国内的githup平台)的文章就介绍到这了,更多相关内容请继续浏览下面的相关推荐文章,希望大家都能在编程的领域有一番成就!

版权声明


相关文章:

  • 发送验证码手机收不到怎么办呢(发送验证码收不到短信)2025-02-20 14:18:05
  • 数组方法改变原数组(数组方法改变原数组的值)2025-02-20 14:18:05
  • 预适应训练仪多少钱一台(缺血预适应训练仪多少钱一台)2025-02-20 14:18:05
  • qq怎么扫描二维码登录游戏账号(qq如何扫二维码登录游戏)2025-02-20 14:18:05
  • 电脑海报制作网站(电脑海报制作网站推荐)2025-02-20 14:18:05
  • 网页传输文件到电脑怎么操作(网页传输文件到电脑怎么操作手机)2025-02-20 14:18:05
  • 删除虚拟环境的命令是(如何删除虚拟环境)2025-02-20 14:18:05
  • nvme口能插sata(nvme接口可以用sata硬盘吗)2025-02-20 14:18:05
  • vs是什么意思的缩写(vs是什么意思的缩写饭圈)2025-02-20 14:18:05
  • bt1120转sdi(bt1120转SDI芯片)2025-02-20 14:18:05
  • 全屏图片