feat(ginit): 新增一键初始化本地 Git 仓库命令

`quicommit ginit`(别名 `gi`)离线完成仓库起步:用 git2 建库并确立初始分支、
写最简 README.md、按根目录标志文件装配 .gitignore、按 --add 添加远程,
`--profile` 可选套用已有 Git 配置。在已有仓库上重复执行只补齐缺失项:绝不覆盖
既有的 README.md/.gitignore、绝不改动已有 remote 的地址、不提供 --force、
不创建首个提交。边界取舍见 ADR 0006,命令命名见 ADR 0005。

实现落在新的 src/git/init.rs(9 个 git 层函数)与 src/commands/ginit.rs,
命令层不直接引用 git2,GitRepo 公开接口未改动,其余命令行为不变。
测试:src/git/init.rs 11 条单元测试、tests/ginit_tests.rs 18 条集成测试;
新增 35 个 ginit_* 消息覆盖 7 种语言。

另将 CONTEXT.md 与 docs/adr/ 纳入版本跟踪(.gitignore 放开 adr/ 与
CONTEXT.md 两条忽略规则);RAODMAP.md 除 ginit 条目外还包含此前未提交的
规划条目更新。
This commit is contained in:
2026-10-09 09:36:04 +08:00
parent ef64e7d844
commit c2f914307d
19 changed files with 2327 additions and 40 deletions

View File

@@ -301,6 +301,7 @@ quicommit config reset --force
| 命令 | 别名 | 说明 |
|------|------|------|
| `quicommit init` | `i` | 初始化配置 |
| `quicommit ginit` | `gi` | 初始化本地 Git 仓库 |
| `quicommit commit` | `c` | 生成并执行提交 |
| `quicommit tag` | `t` | 生成并创建标签 |
| `quicommit changelog` | `cl` | 生成变更日志 |
@@ -308,6 +309,18 @@ quicommit config reset --force
| `quicommit config` | `cfg` | 管理应用配置 |
| `quicommit credential` | — | Git凭据助手(隐藏,由Git调用) |
### ginit命令选项
| 选项 | 说明 |
|------|------|
| `-b, --branch` | 初始分支名(默认取全局 `init.defaultBranch`,缺省时为 `main`) |
| `--add` | 添加远程:`--add <url>`(远程名默认 `origin`)或 `--add <name>=<url>`;可重复传入 |
| `--profile` | 把已有的 Git 配置应用到新仓库,并记录该目录到配置文件的映射 |
| `--dry-run` | 只展示计划,不实际创建任何内容 |
| `-y, --yes` | 仅跳过交互确认(产出内容不变) |
`ginit` 全程离线:不向托管平台创建远程仓库、不验证远程可达性、不创建首个提交,也不会覆盖已存在的 `README.md` 与 `.gitignore`。
### commit命令选项
| 选项 | 说明 |