feat: 新增 git retime,把指定日期范围的提交时间改到 21:00-23:00 并强推

- 保留每个提交的原日期,只重排时分秒到 21:00-23:00;同日严格递增,
  间隔 5-40 分钟且秒位随机;窗口不足时自动压紧并在预览中标注
- 支持 --window/--since/--until、--interval(含 match-remote)、--seed、
  --remote、--branch、--no-push
- 安全措施:默认只预览(退出码 2)、脏工作区拒绝、改写前创建
  refs/kopsc-backup/<分支>-<时间戳> 备份、推送前比对 tree 哈希、
  只用 --force-with-lease
- BuiltinRequest 增加 Confirmed,使内置命令能获知 CLI 已确认 --yes
- 文档:新增 README.git.md,主 README 补充导航与示例
This commit is contained in:
2026-11-01 09:49:03 +08:00
parent f62c1f4872
commit f3b90d205c
19 changed files with 2581 additions and 4 deletions
+3 -1
View File
@@ -222,6 +222,7 @@ var groupDescriptions = map[string]string{
"pkg": "系统软件包:刷新包管理器(dnf/apt/apk/brew/winget)的软件源索引",
"proc": "本机进程:在后台运行命令并写日志,关掉终端也不退出",
"java": "Java 应用:按 JDK 版本自动套用调优参数并前台运行 jar",
"git": "Git 历史:把指定日期范围的提交时间改到 21:00-23:00 并强推",
}
// newGroup builds an intermediate command such as `kopsc disk`.
@@ -308,7 +309,8 @@ func (a *App) newLeaf(cmd *registry.Command, name string) *cobra.Command {
}
return plan.Run(context.Background(), executor.Options{
DryRun: dryRun,
DryRun: dryRun,
Confirmed: yes,
Stdin: a.Stdin,
Stdout: a.Stdout,
Stderr: a.Stderr,