- CLI
- 0.2.17
- 预览 ref
- a2c45c8
目标很明确:
- 仓库留在电脑上
- 改动可以在手机上审阅
- 你可以做出决定(保留 / 撤销 / 评论 / 提交)
- 有把握时可以推送
不是因为“在手机上开发”很有趣。
而是因为 Git 难的地方不在写代码。
而在你离开键盘时,仍需回答:
“这个改动没问题吗?”
本指南介绍一套让远程 Git 审阅简单明了、可重复的工作流。
核心权衡
远程 Git 工作流总要付出以下某种代价:
- 挂载文件系统(SSH 挂载、iOS 文件提供程序等)
- 远程进入一个界面(远程桌面)
- 在终端里用 Git(SSH/tmux)
- 在手机上保留一份仓库副本(真正的移动端 Git 客户端)
这些都能用。
但实际用起来感觉差别很大。
常见做法及其权衡
- 用手机 SSH:可行,但在小小的终端里滚动长输出很痛苦。
- 远程桌面:笨重又麻烦。应急可以,但不适合当默认方式。
- 在本地克隆的移动端 Git 客户端:也可行,如果你在做“以 iPad 为主的开发”,它可能很好用。 一个知名的例子是 Working Copy(iOS 上的 Git),很扎实。 但当你的电脑是事实来源、并且已经有仓库和工具时,它就不合适了。
有帮助的是一个更轻的循环:审阅 diff、留下评论、提交、推送,而不用把仓库搬到手机上。
可行的工作流
这套工作流在拥有仓库的电脑之上使用远程界面。
Happier 是支持这种做法的选项之一。
每个 Happier 会话都绑定在你电脑上的一个文件夹。在手机上,会话会为该文件夹提供专属的 文件(Files)和 Git 标签页,所以无需在手机上保留仓库副本,就能查看已更改的文件、diff、提交和历史。
Git 写操作(暂存、提交、拉取、推送)是实验性的,默认关闭。在 设置(Settings)→ 功能(Features)→ 版本控制操作(Source control operations) 中开启(参见 Git 文档(英文))。查看状态、diff 和历史不需要开启它。
权衡:它仍然依赖电脑保持在线。
如果你第一次接触 Happier(它是什么,在哪里获取)
如果你之前没见过 Happier:它是一款开源配套应用(移动端/网页/桌面),让你把编码工作流留在信任的电脑上,再用手机管理。
开始设置:
- 如何在手机上使用 Happier
- GitHub: https://github.com/happier-dev/happier
- 安装/下载: https://github.com/happier-dev/happier#how-it-works
- Discord(社区与支持): https://discord.gg/W6Pb8KuHfg
分步操作:把手机当作远程 Git 客户端
1) 在仓库文件夹中打开会话
打开一个在该仓库中运行的会话,或者新建一个会话,并选择电脑上的仓库文件夹作为工作目录。
2) 打开 Git 标签页
在会话中打开 Git 标签页,从已更改的文件开始。
这给你三样实用的东西:
- 已更改文件列表
- diff 审阅界面
- 提交界面(从 0.2.12 起可以精确选择要提交的文件)
3) 审阅 diff(不必重读所有内容)
在 更改的文件(Changed files)中,你会看到:
- 更改的文件(带数量)
- 一个 ↓ 审阅(↓ Review)按钮
点按 ↓ 审阅。
如果仓库很大,你可能会看到:
- 检测到较大的 diff(Large diff detected)
这不是 bug,而是护栏:逐步加载 diff,而不是试图在手机上一次渲染 600 个文件。
我实际的手机审阅循环
在手机上,不要试图做完美的审阅。
只做一次有边界的浏览:
- 先打开风险较高的文件。
- 决定:保留 / 撤销 / 评论。
- 停下。
大多数错误发生在审阅变得没有边界的时候。
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 这样的工具有它存在的理由。
本指南针对的是“仓库在电脑上,我只想远程审阅和做小干预”的情况。