把手机当作远程 Git 客户端

一套在手机上审阅 diff、留下行级评论、提交和推送的工作流,而仓库始终留在你信任的电脑上。

基于版本
CLI
0.2.17
预览 ref
a2c45c8

目标很明确:

  • 仓库留在电脑上
  • 改动可以在手机上审阅
  • 你可以做出决定(保留 / 撤销 / 评论 / 提交)
  • 有把握时可以推送

不是因为“在手机上开发”很有趣。

而是因为 Git 难的地方不在写代码。

而在你离开键盘时,仍需回答:

“这个改动没问题吗?”

本指南介绍一套让远程 Git 审阅简单明了、可重复的工作流。

核心权衡

远程 Git 工作流总要付出以下某种代价:

  1. 挂载文件系统(SSH 挂载、iOS 文件提供程序等)
  2. 远程进入一个界面(远程桌面)
  3. 在终端里用 Git(SSH/tmux)
  4. 在手机上保留一份仓库副本(真正的移动端 Git 客户端)

这些都能用。

但实际用起来感觉差别很大。

常见做法及其权衡

  • 用手机 SSH:可行,但在小小的终端里滚动长输出很痛苦。
  • 远程桌面:笨重又麻烦。应急可以,但不适合当默认方式。
  • 在本地克隆的移动端 Git 客户端:也可行,如果你在做“以 iPad 为主的开发”,它可能很好用。 一个知名的例子是 Working Copy(iOS 上的 Git),很扎实。 但当你的电脑是事实来源、并且已经有仓库和工具时,它就不合适了。

有帮助的是一个更轻的循环:审阅 diff、留下评论、提交、推送,而不用把仓库搬到手机上。

可行的工作流

这套工作流在拥有仓库的电脑之上使用远程界面。

Happier 是支持这种做法的选项之一。

每个 Happier 会话都绑定在你电脑上的一个文件夹。在手机上,会话会为该文件夹提供专属的 文件(Files)和 Git 标签页,所以无需在手机上保留仓库副本,就能查看已更改的文件、diff、提交和历史。

Git 写操作(暂存、提交、拉取、推送)是实验性的,默认关闭。在 设置(Settings)→ 功能(Features)→ 版本控制操作(Source control operations) 中开启(参见 Git 文档(英文))。查看状态、diff 和历史不需要开启它。

权衡:它仍然依赖电脑保持在线。

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

如果你之前没见过 Happier:它是一款开源配套应用(移动端/网页/桌面),让你把编码工作流留在信任的电脑上,再用手机管理。

开始设置:

分步操作:把手机当作远程 Git 客户端

1) 在仓库文件夹中打开会话

打开一个在该仓库中运行的会话,或者新建一个会话,并选择电脑上的仓库文件夹作为工作目录。

2) 打开 Git 标签页

在会话中打开 Git 标签页,从已更改的文件开始。

这给你三样实用的东西:

  • 已更改文件列表
  • diff 审阅界面
  • 提交界面(从 0.2.12 起可以精确选择要提交的文件)

3) 审阅 diff(不必重读所有内容)

在 更改的文件(Changed files)中,你会看到:

  • 更改的文件(带数量)
  • 一个 ↓ 审阅(↓ Review)按钮

点按 ↓ 审阅。

如果仓库很大,你可能会看到:

  • 检测到较大的 diff(Large diff detected)

这不是 bug,而是护栏:逐步加载 diff,而不是试图在手机上一次渲染 600 个文件。

我实际的手机审阅循环

在手机上,不要试图做完美的审阅。

只做一次有边界的浏览:

  1. 先打开风险较高的文件。
  2. 决定:保留 / 撤销 / 评论。
  3. 停下。

大多数错误发生在审阅变得没有边界的时候。

4) 用审阅评论让修改更精确

这是很多工具处理得不好的部分。

在手机上审阅时,你不想写一大段这样的消息:

“请修一下 diff 里的那部分。”

而是在 diff 上留下行级审阅评论。

这会给你一份字面意义上的清单,锚定在:

  • 文件路径
  • 行
  • 周围代码的片段

这也是把工作“排进队列”留待以后处理的好办法。

5) 提交(有把握时)

在 更改的文件 底部,你会看到:

  • 提交选择摘要(例如:0 files selected for the next commit.)
  • 一个 全部(All)按钮
  • 一个 提交信息(Commit message)字段
  • 一个 提交(Commit)按钮

一个有用的小习惯:

  • 不要默认提交所有内容
  • 选择一小组连贯的文件
  • 写一条清楚描述意图的提交信息

如果界面提示类似:

  • Operation requires a clean working tree.(需要干净的工作区)

……就照字面理解。

这条消息是在告诉你“你正试图运行一个要求仓库干净的操作”。

6) 拉取 / 推送(与上游同步)

在 Git 标签页中,你会看到这些操作:

  • 拉取(Pull)
  • 推送(Push)

如果你在用手机远程操作 Git,这里要格外慎重。

一条好规则:

  • 拉取 随意。
  • 推送 只在审阅过 diff 并且有把握之后。

7) 需要上下文时使用历史

如果你想回答“发生了什么?”而不是“现在改了什么?”,就打开:

  • Git 标签页中的提交历史

当你在手机上审阅仓库、却忘了昨天在做什么时,这尤其有用。

终端(可选,用于那 10% 的情况)

有时你需要终端。

当内嵌终端可用时,会话可以显示 终端(Terminal)标签页。根据功能矩阵(英文),它是实验性功能。

强烈建议:

  • 默认工作流以界面为主(diff、历史、提交)
  • 只在确实需要的少数情况下使用终端

如果什么都用终端,你就回到了“在手机上 SSH”,只是按钮更好看。

常见问题

这是“手机上的 Git”还是“用手机操作电脑上的 Git”?

是后者。

仓库留在电脑上。

手机是审阅和控制的界面。

常见的大问题是什么?

主机电脑离线(休眠、合上盖子、网络变化)。

没有哪个远程 Git 客户端能改变物理规律。

你能做的,是让“它在线吗?”一目了然,并避免那些会悄悄只应用一半改动的工作流。

什么时候应该改用真正的移动端 Git 客户端?

如果你确实想把仓库放在 iPhone/iPad 上(离线工作、旅行、以 iPad 为主的开发),就用真正的移动端 Git 客户端。

Working Copy 这样的工具有它存在的理由。

本指南针对的是“仓库在电脑上,我只想远程审阅和做小干预”的情况。

相关指南

gitmobileworkflows
最后更新: 2026-10-26