- CLI
- 0.2.17
- 预览 ref
- a2c45c8
注意: 根据 功能矩阵,Git 写操作(commit、push、pull)属于实验性功能。只读操作(diff、log、status)是稳定的。使用写操作时,请了解其行为可能会变化。
经常会出现这种情况:离“完成”只差一次干净的提交,而你恰好不在笔记本前。
通常是件小事:一个代理会话结束了,顺手做了几处修复,你想在忘记这些文件为什么改之前,先锁定一个干净的基线。
在手机上,目标不是复杂的 Git 操作,而是一个紧凑的循环:
审查 diff → 有意识地暂存 → 写好提交信息 → 提交 →(视情况)push
目标是在手机上完成这个循环,不用远程桌面,也不把手机变成一个迷你终端。
要点(工作流)
简短版本:
- 根据你的条件选择方式:
- 完整的终端控制(SSH/tmux)
- 只在 PR 中审查(GitHub)
- 一个适合手机、直接在仓库所在位置操作的界面
- 如果使用 Happier:在存放仓库的机器上设置好它(并连接你的手机)。从这里开始:如何在手机上使用 Happier
- 在手机上打开会话,查看版本控制(Source control)。
- 在暂存任何内容之前,先在审阅(Review)中阅读 diff。
- 只暂存属于同一组改动的内容。
- 写提交信息(也可以先生成草稿再编辑)。
- 提交。
- 只在仓库状态干净时 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
- GitHub: https://github.com/happier-dev/happier
- 安装 / 下载: https://github.com/happier-dev/happier#how-it-works
- Discord(社区与支持): https://discord.gg/W6Pb8KuHfg
前提条件
你需要:
- 一个连接到存放仓库机器的 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 等)的实用工作流
如果你想“在手机上提交”是因为在运行代理会话,一个好用的手机优先循环是:
- 在审阅中查看代理改了什么
- 用内置编辑器做小修改(修正命名、删除误建的文件)
- 用简洁的信息提交
- 给代理发送后续指令(“从这个干净的基线继续”)
一个不起眼但有用的习惯:使用输入框的链接文件(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,却不能暂存或提交?
两个常见原因:
- 没有启用 Git 写操作。 启用设置(Settings)→ 功能(Features)→ Git operations。
- 仓库处于有意阻止写操作的状态(冲突、detached
HEAD等)。
为什么 push 被阻止了?
Happier 的设计本身就偏保守。push 通常在以下情况被阻止:
HEAD处于 detached 状态- 本地分支落后于上游
- 存在冲突
这些情况下,把手机上的工作流当作:审查 + 暂存 + 提交。在完整的终端中清理好仓库状态后再 push。
必须在手机上 push 吗?
不必。一个完全合理的“手机优先”工作流是:
- 审查 diff
- 有意识地暂存
- 提交
然后等回到笔记本时(或者你愿意在终端里快速检查一下时)再 push。
如果机器或守护进程无法访问怎么办?
那就无法从仓库加载版本控制状态。这时你的选择是:
- 等机器重新可以访问
- 退回到 SSH 或远程桌面
Happier 不会让网络或机器可用性的问题消失,它只是让你在机器可以访问时更容易在手机上推进工作流。
相关指南
下一步
- 如果你主要的痛点是代码审查,可以从 如何在手机上审查 diff 开始(它和提交的流程略有不同)。
- 如果你总在同一步卡住(没有提交或 push 按钮、仓库无法访问等),把它整理成一份给自己的小清单,每次能省下 10 分钟左右。