# repostack remove <name>

> 

从 stack 中移除一个 repo。

```bash
repostack remove <name> [options]
```

## 参数

| 参数     | 说明                                      |
| ------ | --------------------------------------- |
| `name` | Repo 名称（在 `repostack.yaml` 中定义的 `name`） |

## 选项

| 选项      | 简写   | 说明     |
| ------- | ---- | ------ |
| `--yes` | `-y` | 跳过确认提示 |

## 执行流程

<steps level="4">

#### **用户校验**- 与 `use` 相同，如果 `repostack.yaml` 中定义了 `users`，会强制要求 `.repostackrc` 存在且指向有效用户，否则抛出错误。





#### **读取基础配置**- 加载 `repostack.yaml`。





#### **查找 repo**- 按 `name` 搜索。若未找到，抛出 `Repo not found: ${repoName}` 并中断。





#### **确认移除**- 非 `--yes` 模式：弹出 `confirm` 提示 `Remove "..." from repostack?`，默认 **否**。
- 用户拒绝或按 `Ctrl+C` 则中断。





#### **更新配置**- 从 `repos` 数组中删除该条目。
- 写回 `repostack.yaml`。





#### **自动生成 lock 文件**- 重新生成 `repostack.lock.yaml`。





</steps>

## 涉及文件

| 文件                    | 操作       |
| --------------------- | -------- |
| `repostack.yaml`      | 读取 / 写入  |
| `.repostackrc`        | 读取（用户校验） |
| `repostack.lock.yaml` | 写入（覆盖）   |

## 错误信息

| 场景                | 错误信息                                          |
| ----------------- | --------------------------------------------- |
| 未找到 repo          | `Repo not found: ${repoName}`                 |
| 用户拒绝移除            | `Aborted: user declined to remove repo`       |
| 用户未配置（且配置了 users） | `This stack requires a user configuration...` |

## 注意

- **仅移除配置记录，不会删除本地目录**。如需彻底删除，请手动执行 `rm -rf <path>`。

## 示例

```bash
# 交互模式
repostack remove my-repo

# 自动模式
repostack remove my-repo --yes
```
