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:
13
README.md
13
README.md
@@ -307,6 +307,7 @@ quicommit config reset --force
|
||||
| Command | Alias | Description |
|
||||
|---------|-------|-------------|
|
||||
| `quicommit init` | `i` | Initialize configuration |
|
||||
| `quicommit ginit` | `gi` | Initialize a local Git repository |
|
||||
| `quicommit commit` | `c` | Generate and create commit |
|
||||
| `quicommit tag` | `t` | Generate and create tag |
|
||||
| `quicommit changelog` | `cl` | Generate changelog |
|
||||
@@ -314,6 +315,18 @@ quicommit config reset --force
|
||||
| `quicommit config` | `cfg` | Manage settings |
|
||||
| `quicommit credential` | — | Git credential helper (hidden, invoked by Git) |
|
||||
|
||||
### Ginit Options
|
||||
|
||||
| Option | Description |
|
||||
|--------|-------------|
|
||||
| `-b, --branch` | Initial branch name (default: global `init.defaultBranch`, then `main`) |
|
||||
| `--add` | Add a remote: `--add <url>` (name defaults to `origin`) or `--add <name>=<url>`; repeatable |
|
||||
| `--profile` | Apply an existing Git Profile to the new repository and record the directory mapping |
|
||||
| `--dry-run` | Show the plan without creating anything |
|
||||
| `-y, --yes` | Skip confirmation prompts only (output behavior unchanged) |
|
||||
|
||||
`ginit` runs fully offline: it never creates a remote repository on a hosting service, never checks remote reachability, never makes the first commit, and never overwrites an existing `README.md` or `.gitignore`.
|
||||
|
||||
### Commit Options
|
||||
|
||||
| Option | Description |
|
||||
|
||||
Reference in New Issue
Block a user