# CLI 总览

> 

`repostack` 提供一组平级命令，用来管理 stack、同步 repo、查看状态和批量执行命令。

## 全局帮助

```bash
repostack --help
```

## 版本信息

```bash
repostack -v
repostack --version
```

## 调试模式

```bash
repostack -d run --repos foo -- pnpm test
repostack --debug run --repos foo -- pnpm test
```

调试模式会把编排层日志写到 `stderr`。

## 当前命令列表

| 命令                          | 作用              |
| --------------------------- | --------------- |
| [`init`](/cli/init)         | 初始化 stack root  |
| [`use`](/cli/use)           | 添加 repo 到 stack |
| [`remove`](/cli/remove)     | 从 stack 移除 repo |
| [`pull`](/cli/pull)         | 下载缺失的 repo      |
| [`sync`](/cli/sync)         | 同步到锁定版本         |
| [`list`](/cli/list)         | 列出 repo 状态      |
| [`run`](/cli/run)           | 批量执行命令          |
| [`snapshot`](/cli/snapshot) | 记录当前状态          |
| [`whoami`](/cli/whoami)     | 显示当前用户          |
| [`users`](/cli/users)       | 管理用户配置          |
| [`doctor`](/cli/doctor)     | 诊断 stack 健康     |

## 常用工作流

### 初始设置

```bash
# 1. 进入开发目录
cd ~/my-stack

# 2. 初始化
repostack init

# 3. 添加已有 repo
repostack use ./foo --yes
repostack use ./bar --yes

# 4. 提交配置
git add repostack.yaml repostack.lock.yaml
git commit -m "init repostack"
```

### 日常开发

```bash
# 查看所有 repo 状态
repostack list

# 在 runtime 相关的 repo 上运行测试
repostack run --view runtime -- pnpm test

# 记录当前状态
repostack snapshot
git commit -am "update stack snapshot"
```

### 协作同步

```bash
# 同事更新了 lock 文件，同步到指定版本
repostack sync
```

## 全局参数

| 参数          | 简写   | 说明   |
| ----------- | ---- | ---- |
| `--help`    | `-h` | 显示帮助 |
| `--version` | `-v` | 显示版本 |
| `--debug`   | `-d` | 调试模式 |
