lingo push 会向引擎提交一次运行并等待完成。但运行实际存在于服务器端,而不在你的终端里——所以你可以关闭终端、切换机器,或交给 CI 接手,之后依然能取回结果。本页会介绍它的工作机制,以及运行失败时该如何恢复。
运行状态#
每次 push 都会把它提交的运行记录到当前机器上的一个文件里:
text
~/.lingo/runs/<hash>.json<hash> 是根据项目的绝对路径生成的,因此每个 checkout 都有各自对应的条目。这个文件保存了运行 ID、引擎和组织信息——足够让后续的 lingo pull 找到输出结果。
这是机器级状态,不是项目状态——它保存在你的主目录中,不会出现在仓库里,也不会被提交。
在另一台机器上 pull#
由于运行保存在服务器端,你可以在一处 push,再到另一处 pull:
bash
# laptop
lingo push
# CI, or a second machine with the same checkout + credentials
lingo pullpull 会拉取该项目最近一次运行的输出。它也会检查 lockfile 是否存在本地修改;除非你传入 --force,否则它不会覆盖这些改动。参见 lingo pull。
移动项目
运行状态文件名是基于项目绝对路径生成的。如果你在 push 和 pull 之间移动了目录,查找就会失效——不过如果需要手动恢复,运行 ID 仍然保存在 ~/.lingo/runs/ 里。
恢复失败的运行#
如果某次运行中途出错——比如超时或临时性的引擎错误——请使用:
bash
lingo resumeresume 会直接重新输出引擎缓存中的结果,而不是重新翻译,因此恢复后的运行不会再次消耗额度。它会告知你哪些内容已成功恢复,以及哪些内容无法重新关联。
如果 resume 提示有目标无法恢复,就用常规 backfill 把缺失内容补齐:
bash
lingo push --backfill-missing何时该用什么#
| 场景 | 命令 |
|---|---|
| 关闭终端后再取回结果 | lingo pull |
| 在笔记本上 push,在 CI 中 pull | lingo push then lingo pull |
| 运行中途失败 | lingo resume |
| 恢复后仍有缺失 | lingo push --backfill-missing |
