我也在用 lazygit,日常提交基本离不开它了。不过关于你说的"丢进 CI 里临时排错也照样跑",我想追问一下具体场景。
lazygit 是交互式 TUI,底层用 tcell 渲染,启动前提是有一个活动的 TTY 来收按键、画界面。CI runner 跑任务时绝大多数分配的是 non-interactive shell,没有控制终端,lazygit 一启动基本卡在终端初始化失败上,界面都进不去。你指的"照样跑"是哪种情况?如果是 CI 失败后 ssh 进 runner 开一个交互式 session 再启动它,那成立;但若是把 lazygit 直接写进 CI 流程当排错步骤,在 non-TTY 环境下其实跑不起来。真要 dump 状态排查,git status 配合 git log --oneline --graph 加一行脚本反而更稳。
顺带补一句,"零配置"理解为"零配置门槛"更准确。clone 即用没错,但 ~/.config/lazygit/config.yml 真实存在,可以挂 customCommands,把 interactive rebase onto、soft reset 这类操作固化成菜单项,深度用户后期基本都会碰。
还有个角度:lazygit 把 rebase 做成可视化(squash、reword 直接选),确实砍掉了记参数的负担。但遇到要 split 一个 commit 或 reorder 引发冲突,UI 覆盖不到,最后还是退到 git rebase -i。所以它降的是记忆成本,降不了理解 git 模型本身——这点跟"门槛砍掉一大截"不矛盾,只是门槛砍在表层。其实
你 rebase 卡住时,是在 lazygit 里硬试还是退到命令行?