把 Git 装进口袋:我做了一个 HarmonyOS 原生客户端 ArkGit

0 阅读3分钟

很多人都在手机上“看代码”,但很少有人真的在手机上“管理仓库”。原因很简单:大多数移动端 Git 工具要么功能不全,要么交互别扭,遇到分支、冲突、提交历史时就开始“劝退”。

立即下载

ArkGit 想解决的,就是这件事。
它是一个专为 HarmonyOS 设计的原生 Git 客户端,前端用 ArkTS/ArkUI,底层通过 C++ NAPI 接入 libgit2 / libssh2 / mbedtls,目标很直接:让移动端也能完成靠谱、流畅、可预期的 Git 工作流。

从“能用”到“顺手”,ArkGit 做了什么

日常用 Git,核心动作并不复杂:拉取、暂存、提交、推送、切分支、看历史、必要时 Cherry-pick。难点在于把这些动作放到手机屏幕里后,依然保持清晰和稳定。

ArkGit 目前覆盖了这些关键能力:

  • 仓库列表管理(搜索、删除、本地仓库入口)

fe44639102514d958ea2024af1c8ffad (4).webp

  • HTTP/HTTPS/SSH 克隆,带进度与超时处理
  • 文件、状态、分支/标签、提交记录、文件搜索五大核心 Tab

fe44639102514d958ea2024af1c8ffad (2).webp

  • 提交、拉取、推送、暂存/取消暂存、丢弃、Cherry-pick

fe44639102514d958ea2024af1c8ffad.webp

  • 凭据管理、提交身份管理、SSH 密钥查看/重生成
  • 集成 hm_code_editor,支持 75+ 语言语法高亮

fe44639102514d958ea2024af1c8ffad (1).webp

我最满意的五个体验瞬间

你打开 App 先看到的是仓库列表,而不是一堆复杂术语。这个入口非常关键,因为它决定了“管理多个项目”是不是轻松。

接着是提交列表和图谱视图。相比纯文本日志,图谱能更直观地表达分支演进关系,尤其在多人协作时,你会更快看懂“这条线是怎么来的”。

分支和标签页把“切分支、看远程分支、推标签”这类高频动作放在了同一语义空间里,不用在菜单里反复跳转。

状态页则更偏“执行面板”:你能清楚看到当前分支、改动文件、暂存区状态,再完成提交和推送。每一步反馈都很明确,心里更有底。

最后是移动端代码编辑。集成编辑器后,很多“小修小补”不再需要等回到电脑,尤其是改注释、修配置、补一行逻辑这种场景,效率提升很明显。

为什么是 ArkTS + C++ NAPI 的组合

如果只做一个“仓库浏览器”,纯前端也许够用。
但 ArkGit 要做的是完整 Git 体验,底层能力必须扎实。

ArkTS/ArkUI 负责交互层,优势是 HarmonyOS 原生体验和开发效率。
C++ NAPI 负责 Git 核心能力,优势是性能、稳定性和对成熟库生态的复用。
这套组合的意义在于:上层界面可以灵活演进,下层能力保持专业可靠。

README 里导出的 NAPI 方法也体现了这个思路,比如 history、getCommitDetail、getStatus、pull、push、cherryPick 等,都是围绕真实工作流设计,而不是“演示型 API”。

这类工具,真正适合谁

ArkGit 不是要替代桌面 IDE,它更像你的“随身 Git 控制台”:

  • 通勤路上快速 review 最近提交
  • 紧急场景先修一个小问题并提交
  • 远程协作时快速定位分支状态
  • 在移动设备上完成轻量但完整的仓库操作

当你把这些碎片时间串起来,会发现移动端 Git 不是“能不能做”,而是“值不值得做好”。ArkGit 选择了后者。

如果你也在做 HarmonyOS 原生应用,或者正好对 ArkTS 与 C++ 混合架构感兴趣,欢迎交流你最在意的场景。我也在继续把提交图谱、冲突处理反馈和多人协作细节打磨得更顺滑。