如何在手机上提交代码:查看 diff、精确暂存、安全提交

一套手机优先的工作流:审查 diff、有意识地暂存、安全地提交,无需远程桌面连回你的电脑。

基于版本
CLI
0.2.17
预览 ref
a2c45c8

注意: 根据 功能矩阵,Git 写操作(commit、push、pull)属于实验性功能。只读操作(diff、log、status)是稳定的。使用写操作时,请了解其行为可能会变化。

经常会出现这种情况:离“完成”只差一次干净的提交,而你恰好不在笔记本前。

通常是件小事:一个代理会话结束了,顺手做了几处修复,你想在忘记这些文件为什么改之前,先锁定一个干净的基线。

在手机上,目标不是复杂的 Git 操作,而是一个紧凑的循环:

审查 diff → 有意识地暂存 → 写好提交信息 → 提交 →(视情况)push

目标是在手机上完成这个循环,不用远程桌面,也不把手机变成一个迷你终端。

要点(工作流)

简短版本:

  1. 根据你的条件选择方式:
    • 完整的终端控制(SSH/tmux)
    • 只在 PR 中审查(GitHub)
    • 一个适合手机、直接在仓库所在位置操作的界面
  2. 如果使用 Happier:在存放仓库的机器上设置好它(并连接你的手机)。从这里开始:如何在手机上使用 Happier
  3. 在手机上打开会话,查看版本控制(Source control)。
  4. 在暂存任何内容之前,先在审阅(Review)中阅读 diff。
  5. 只暂存属于同一组改动的内容。
  6. 写提交信息(也可以先生成草稿再编辑)。
  7. 提交。
  8. 只在仓库状态干净时 push(没有冲突、没有落后于上游、不是 detached 状态)。

“在手机上提交”实际意味着什么

提交必须发生在仓库工作树所在的地方(你的笔记本、服务器或开发机)。所以问题不是“我的手机能不能跑 git?”,而是:

  • 你能否在手机上审查和控制仓库
  • 而实际的 git 操作在拥有工作区的机器上运行

Happier 正是围绕这种工作流设计的:你在手机上完成“审查 / 暂存 / 提交”的循环,仓库和 Git 留在拥有工作区的机器上。

什么时候适合用这种方式(什么时候不适合)

适合的情况:

仓库在你掌控的机器上(笔记本、服务器、开发机),你想要一个稳妥的界面来审查 diff、暂存和提交。你也能接受 Git 写操作放在功能开关后面(并且可能标为实验性)。

不适合的情况:

你需要改写历史(rebase、reset、cherry-pick),正处于冲突之中,或者拥有仓库的机器根本无法访问。这些情况下,请回到真正的终端。

常见做法及其取舍

常见选项:

  • SSH + tmux:能用,但在手机上很容易匆忙审查 diff 和暂存。
  • 远程桌面:应付偶尔的紧急情况可以,但在手机上笨重又容易误触。
  • GitHub 手机版:工作已经在 PR 里时很好用,但对你机器上未提交的状态帮不上忙。

更合适的是类似“手机上的 GitHub Desktop”的东西,同时直接操作仓库所在的位置(而不是云端的第二份副本)。

  • Happier:一款开源应用,可以跨设备运行和编排 Claude Code、Codex 等代理。你可以在手机上审查 diff、有意识地暂存并提交,而仓库和 Git 留在你的机器上。 取舍:仍然依赖机器或守护进程可以访问。

如果你第一次接触 Happier(它是什么、在哪里获取)

如果你没见过 Happier:它是一款面向 Claude Code、Codex 和 OpenCode 等 AI 编程代理的开源配套应用(移动端 / 网页 / 桌面端)。

这里的工作流是:用 Happier 在手机上审查 diff、暂存和提交,而会话(以及仓库和 Git)留在拥有工作区的机器上(笔记本、服务器或开发机)。

对这篇指南来说,这意味着你可以在手机上完成最后一步“审查 + 暂存 + 提交”,无需远程桌面。

开始设置:

前提条件

你需要:

  • 一个连接到存放仓库机器的 Happier 会话。
  • 可以访问仓库和文件(只有在机器层面的工作区 API 可访问时,这些界面才能显示真实数据)。

启用 Git 写操作(重要)

默认情况下,Happier 的仓库浏览和 diff 审查可以使用,但 Git 写操作(stage/unstage/commit/pull/push 等)放在功能开关后面:

  • 进入设置(Settings)→ 功能(Features)→ Git operations
  • 启用它(把它当作实验性功能)

即使不启用 Git operations,你仍然可以用同样的工作流审查改动,只是要在终端里完成提交。

分步操作:在手机上提交代码

桌面端和移动端的界面布局不同。在手机尺寸的屏幕上,专注于“一次做一件事”的界面,比把桌面侧边栏塞进小屏幕更好用。

1) 打开版本控制

在会话界面中:

  • 打开版本控制(Source control)(显示仓库状态的界面)

你应该看到:

  • 当前分支摘要
  • 改动文件列表(带有 A、M、D 等状态)
  • 可用时显示新增 / 删除的行数

如果完全看不到仓库状态,请跳到故障排查。

从 0.2.12 起,审查时可以精确选择要放进提交的文件,同时工作区的其他内容仍然可见。这样你可以只提交自己的修复,而不会把代理改动的其他内容一并卷进去。

2) 暂存前先审查 diff

在暂存任何内容之前,快速过一遍:

  • 打开审阅(Review)界面,把未提交的 diff 当作一次连续的审查来滚动浏览。
  • 看完的文件折叠起来。
  • 需要修改某个文件时,在编辑器中打开、修改,再回到审阅。

在手机上,专门的 diff 和审查界面比原始终端更不容易让人迷失位置。

3) 有意识地暂存

在改动文件列表中你可以:

  • 按文件暂存 / 取消暂存
  • (支持时)暂存选中的行或代码块

在手机上提交时,暂存的纪律比平时更重要。一个好的默认规则:

  • 只暂存属于一组连贯改动的文件
  • 顺手的格式调整、调试日志和无关修改留到单独的提交

4) 写提交信息(也可以生成草稿)

在版本控制界面底部,Happier 提供了提交输入框。

你可以自己输入信息,也可以用 Generate commit message 生成草稿。

重要提示:

  • 生成器只提供文字建议,不会自动提交
  • 你可以在设置(Settings)→ 版本控制(Source Control)中配置后端和指令

即使用了生成器,也把它当作自动补全:快速看一遍已暂存的 diff,调整信息,使其符合你实际暂存的内容。

5) 提交

提交已暂存的改动。

如果 Happier 阻止了操作,通常是因为仓库处于不适合界面自动操作的状态(冲突、detached HEAD 等)。这是有意为之。

6) push(可选):了解安全限制

如果你选择在手机上 push,请预期会有保守的安全限制。这种倾向是有意的:与其让你在小屏幕上改写历史,不如拒绝有风险的 push。

你可能会遇到的规则示例:

  • pull 仅限 fast-forward
  • HEAD 处于 detached 状态时,push/pull/revert 会被阻止
  • 本地落后于上游时,push 会被阻止
  • 存在冲突时,push/pull/revert 会被阻止

遇到阻止时,通常正是做以下事情的时机:

  • 在完整的终端中修复仓库状态
  • 先切换分支 / 清理 / 解决冲突

面向 AI 编程会话(Claude/Codex 等)的实用工作流

如果你想“在手机上提交”是因为在运行代理会话,一个好用的手机优先循环是:

  1. 在审阅中查看代理改了什么
  2. 用内置编辑器做小修改(修正命名、删除误建的文件)
  3. 用简洁的信息提交
  4. 给代理发送后续指令(“从这个干净的基线继续”)

一个不起眼但有用的习惯:使用输入框的链接文件(Link file)或文件浏览工具,把确切的文件附加到下一条提示中,而不是手动描述路径。

附件与项目文件(不要提交错东西)

Happier 支持把附件作为会话工作流的一部分。附件很适合:

  • 粘贴日志
  • 分享一次性的文件
  • 发送产物给模型阅读

但附件和你打算提交的项目文件不是一回事。

如果你的目标是“这个应该进 git”,请通过文件(Files)把它放进工作区(创建 / 上传 / 编辑),而不是作为临时附件。

故障排查

在手机上看不到版本控制或 diff

常见原因:

  • 拥有仓库的机器或守护进程无法访问。
  • 你没有连接到与机器相同的服务器或中继。

如果会话不活跃但机器在线,Happier 仍然可以通过机器层面的工作区 API 加载仓库和文件数据,前提是它真的能访问到那台机器。

暂存或提交按钮不见了

Git 写操作在开关后面:

  • 设置(Settings)→ 功能(Features)→ Git operations

Happier 不让我 push/pull/commit

这通常是仓库安全规则在起作用。常见的阻止原因:

  • 存在冲突
  • detached HEAD
  • 分支落后于上游

先在完整的终端中解决仓库状态,再回到手机上的工作流。

能审查 diff 但不能提交

当只读的仓库数据可用,但写操作被禁用(功能开关关闭)或被仓库状态阻止时,就会出现这种情况。

这时一个实用的工作流是:

  • 在手机上完成 diff 审查和清理
  • 回到笔记本时,在终端中完成实际的提交和 push

常见问题

能在 iPhone 或 Android 手机上这样做吗?

可以,主要区别在于操作体验。

  • 在手机上,Happier 使用专注的界面(列表 → 详情),而不是桌面端的多窗格布局。
  • 在 iOS 或 Android 上,你可能更愿意在手机上审查 diff 和暂存,之后再用完整的终端处理冲突。

为什么能审查 diff,却不能暂存或提交?

两个常见原因:

  1. 没有启用 Git 写操作。 启用设置(Settings)→ 功能(Features)→ Git operations。
  2. 仓库处于有意阻止写操作的状态(冲突、detached HEAD 等)。

为什么 push 被阻止了?

Happier 的设计本身就偏保守。push 通常在以下情况被阻止:

  • HEAD 处于 detached 状态
  • 本地分支落后于上游
  • 存在冲突

这些情况下,把手机上的工作流当作:审查 + 暂存 + 提交。在完整的终端中清理好仓库状态后再 push。

必须在手机上 push 吗?

不必。一个完全合理的“手机优先”工作流是:

  • 审查 diff
  • 有意识地暂存
  • 提交

然后等回到笔记本时(或者你愿意在终端里快速检查一下时)再 push。

如果机器或守护进程无法访问怎么办?

那就无法从仓库加载版本控制状态。这时你的选择是:

  • 等机器重新可以访问
  • 退回到 SSH 或远程桌面

Happier 不会让网络或机器可用性的问题消失,它只是让你在机器可以访问时更容易在手机上推进工作流。

相关指南

下一步

  • 如果你主要的痛点是代码审查,可以从 如何在手机上审查 diff 开始(它和提交的流程略有不同)。
  • 如果你总在同一步卡住(没有提交或 push 按钮、仓库无法访问等),把它整理成一份给自己的小清单,每次能省下 10 分钟左右。
mobilegitsource-controlworkflows
最后更新: 2026-10-26