- CLI
- 0.2.17
- 预览 ref
- a2c45c8
一个在“离开工位时”反复出现的问题:
改了什么?
不是“完美的架构是什么?”
也不是“下一步该重构什么?”
只是:改了什么、在哪里改的、能不能信任。
这会在以下情况出现:
- 同事找你说出现了回归
- 一个你几天没看的分支 CI 失败了
- 你正在发布中途
- 你在审阅自己之前的改动
如果唯一的回答方式是“远程桌面连到电脑上”,这件事通常就会被推迟。
本指南介绍一套让你能在手机上“审阅最近提交”的工作流。
常见做法及其权衡
- SSH:适合快速执行命令,但不适合在手机上直观地审阅 diff。
- 远程桌面:可行,但笨重又分散注意力。
- Git 托管应用:如果改动已经在 PR 里,很合适。 但有时你想审阅电脑上的仓库,不管它托管在哪里(或者还没推送)。
可行的工作流
这套工作流在拥有仓库的电脑之上使用远程界面。
Happier 是支持这种做法的选项之一。
每个 Happier 会话都绑定在你电脑上的一个仓库文件夹。在手机上,会话的 Git 标签页让你可以:
- 浏览提交历史
- 打开某个提交并审阅它的 diff
查看历史和 diff 不需要开启实验性的 Git 写操作。
权衡:你的电脑仍需在线。
如果你第一次接触 Happier(它是什么,在哪里获取)
如果你之前没见过 Happier:它是一款开源配套应用(移动端/网页/桌面),让你把工作流留在信任的电脑上,再用手机管理。
开始设置:
- 如何在手机上使用 Happier
- GitHub: https://github.com/happier-dev/happier
- 安装/下载: https://github.com/happier-dev/happier#how-it-works
- Discord(社区与支持): https://discord.gg/W6Pb8KuHfg
分步操作:用手机审阅提交历史
1) 在仓库文件夹中打开会话
打开一个在该仓库中运行的会话,或者以仓库文件夹为工作目录启动一个会话。
2) 打开 Git 标签页的历史
在会话中:
- 打开 Git 标签页。
- 打开提交历史。
你会看到:
- 最近提交(Recent commits)
- 一个 加载更多提交(Load more commits)操作
3) 打开一个提交并审阅 diff
一个简单的手机审阅循环:
- 打开最新的提交
- 快速浏览提交信息(意图)
- 先打开风险较高的文件
- 决定:“没问题”还是“需要跟进”
如果你需要知道“为什么会这样?”,可以从历史跳转到:
- 当前工作区的 更改的文件(Changed files)
4) 需要上下文时使用“文件”
历史告诉你改了什么。
有时你还需要“这个文件是做什么的?”这样的上下文。
这时就打开:
- 文件(Files)
搜索、打开文件、阅读,然后返回。
5) 做出跟进决定
大多数审阅工作流失败,是因为没有以行动收尾。
在手机上可以做的有用行动:
- 留下审阅评论
- 要求用一段话说明某个改动的理由
- 把一个小修复加入队列
- 或者判断“这没问题”,然后继续
终端(可选)
当内嵌终端可用时,会话可以显示 终端(Terminal)标签页。根据功能矩阵(英文),它是实验性功能。
用它执行一次性命令(git show、git grep 等),但默认工作流仍以界面为主。
常见问题
为什么用历史,而不只看更改的文件?
更改的文件回答的是:“这个工作区现在有哪些改动?”
历史回答的是:“一段时间内发生了什么?”
两者都有用,它们回答的是不同的问题。
能往回看多远?
使用 加载更多提交。
合并提交会显示 diff 吗?
在原生 Git 中,除非你指定特定的合并 diff 格式,合并提交通常不会显示 diff。
如果你在审阅合并,要格外明确你想查看的内容(first-parent 视图还是组合 diff)。(来源:https://git-scm.com/docs/git-log)
不推送到 GitHub 也能审阅提交历史吗?
能。
这正是基于会话的工作流的核心好处之一:你可以审阅电脑上的内容,而不只是已经推送的内容。
常见的大问题是什么?
主机电脑离线。
如果你无法让存放仓库的机器稳定在线,任何手机工作流都不会让人觉得稳定。
怎么在手机上回答“这两个时间点之间改了什么”?
两种实用的方法:
- 在 历史 中打开两个提交,逐个审阅它们的 diff。
- 如果你需要真正的“比较 A…B”的 diff,用 终端 执行一次
git diff <a>..<b>。
把终端当作应急出口:有用,但不是默认方式。
怎么找到“引入这个 bug 的提交”?
在手机上,通常较快的路径是:
- 从你怀疑的文件开始
- 浏览最近修改过它的提交
- 缩小到一个小范围
如果需要真正的 bisect,那通常是键盘前的任务。
不在 GitHub 上的仓库也能审阅提交历史吗?
能。
会话作用于你电脑上的一个文件夹。
只要这个文件夹是 Git 仓库,无论托管在 GitHub、GitLab、自托管的远程,还是哪里都没托管,你都能审阅历史。
历史是只读的,还是可以在那里修改?
历史是一个审阅界面。
如果你决定要改点什么:
- 打开 文件 进行编辑
- 然后用 Git 标签页审阅并提交(提交是实验性的 Git 写操作,默认关闭)
为什么提交信息在手机上会被截断?
因为界面要放得下。
如果提交信息被截断,把它当作一个信号:
- 点进提交详情
- 更多依赖 diff 而不是信息
怎么审阅大型改动集而不丢失头绪?
一个适合手机的技巧:
- 先只审阅排在前面的 1 到 3 个“风险文件”(认证、配置、迁移、锁文件)
- 对想要重新处理的地方留下审阅评论
- 做出决定后就停下
如果你想在手机上完美地审阅 200 个文件,会耗费时间,还是会漏掉东西。
可以用这套工作流审阅 AI 代理改了什么吗?
可以,这是很合适的用法之一。
如果一个长会话昨天做了改动,在决定下一步之前,历史 能帮你回答“实际落地了什么?”
什么时候应该改用仓库托管应用?
如果改动已经以 PR 的形式存在,托管应用可能很合适。
Git 标签页的历史适合以下情况:
- 改动还没推送
- 你在审阅自己的本地提交
- 无论仓库托管在哪里,你都想用同一套工作流