repostack list
列出 stack 中所有 repo 的当前 Git 状态。
repostack list
执行流程
加载配置- 读取
repostack.yaml 和 .repostackrc(如果启用了用户配置)。
repostack.yaml 和 .repostackrc(如果启用了用户配置)。显示当前用户(如有)- 如果
.repostackrc 指向了某个用户,在输出顶部打印一行 [user: <name>]。
.repostackrc 指向了某个用户,在输出顶部打印一行 [user: <name>]。遍历所有 repo- 对每个 repo 执行以下 Git 查询:
git rev-parse --abbrev-ref HEAD → 分支名git rev-parse HEAD → 当前 revision(截取前 12 位)git status --short → 判断是否有未提交改动
git rev-parse --abbrev-ref HEAD→ 分支名git rev-parse HEAD→ 当前 revision(截取前 12 位)git status --short→ 判断是否有未提交改动
输出表格- 格式:
NAME\tBRANCH\tREVISION\tSTATUS STATUS 为 clean(干净)或 dirty(有未提交修改)。
NAME\tBRANCH\tREVISION\tSTATUSSTATUS 为 clean(干净)或 dirty(有未提交修改)。涉及文件
| 文件 | 操作 |
|---|---|
repostack.yaml | 读取 |
.repostackrc | 读取 |
| 各 repo 的 Git 元数据 | 读取 |
Git 操作
git rev-parse --abbrev-ref HEADgit rev-parse HEADgit status --short
错误与边界情况
- 如果 repo 是空仓库(没有任何 commit),分支和 revision 都会显示为
(no commits),而不是报错。 - 配置加载失败会导致命令直接中断。
输出示例
NAME BRANCH REVISION STATUS
foo main a79cd2d clean
bar main 1234567 dirty
示例
repostack list