feat: git retime 支持重排提交日期,新增 install.sh
- 新增 --start-date:按原顺序从指定日期起重排提交日期,默认每天一个 - 新增 --per-day 控制每天提交数、--day-gap 控制日期间隔;两者需配合 --start-date 使用,否则报错提示 - 不给 --start-date 时保持原行为(保留原日期,只改时分秒) - 预览在重排模式下显示完整的新日期时间,并说明日期规则 - install.sh:补 shebang 与可执行权限,构建后安装到 /usr/local/bin - 文档:README.git.md 增加「重排日期」小节与选项表
This commit is contained in:
@@ -22,10 +22,15 @@ kopsc git retime 2026-10-01 2026-10-15 --interval 10-25 # 间隔改为 10-2
|
||||
kopsc git retime 2026-10-01 2026-10-15 --window 20:00-22:30 # 换一个时间段
|
||||
kopsc git retime 2026-10-01 2026-10-15 --seed 42 # 固定随机种子,结果可复现
|
||||
kopsc git retime 2026-10-01 2026-10-15 --no-push --yes # 只改本地,不推送
|
||||
|
||||
# 连日期一起重排:从 2026-11-01 起,每天 2 个提交,日期间隔 3 天
|
||||
kopsc git retime 2026-10-01 2026-10-15 --start-date 2026-11-01 --per-day 2 --day-gap 3
|
||||
```
|
||||
|
||||
### 时间怎么分配
|
||||
|
||||
默认**保留每个提交的原日期**,只改时分秒;加 `--start-date` 才会重排日期(见下)。
|
||||
|
||||
- 每个提交落在**自己原来的日期**上,日期不变。
|
||||
- 同一天内的提交按原顺序**严格递增**。
|
||||
- 相邻提交间隔是 **5–40 分钟**的随机值,**秒位也随机**(如 `21:07:43` → `21:32:11`),
|
||||
@@ -34,6 +39,30 @@ kopsc git retime 2026-10-01 2026-10-15 --no-push --yes # 只改本地,
|
||||
- 如果某天提交太多、21:00–23:00 放不下所有间隔,会**自动压紧为窗口内均匀分布**,
|
||||
预览表中该行标注「⚠ 已压缩间隔」。
|
||||
|
||||
### 重排日期(--start-date)
|
||||
|
||||
加 `--start-date <日期>` 后,范围内的提交按原顺序**重新分配日期**,从该日开始:
|
||||
|
||||
```bash
|
||||
kopsc git retime 2026-10-01 2026-10-15 --start-date 2026-11-01 # 每天一个,连续日期
|
||||
kopsc git retime 2026-10-01 2026-10-15 --start-date 2026-11-01 --per-day 3 # 每天最多 3 个
|
||||
kopsc git retime 2026-10-01 2026-10-15 --start-date 2026-11-01 --day-gap 2 # 日期间隔 2 天
|
||||
```
|
||||
|
||||
```text
|
||||
窗口: 21:00-23:00(从 2026-11-15 起重排,每天 1 个,间隔 2 天)
|
||||
|
||||
提交 原时间 新时间 主题
|
||||
f89cdd9 2026-10-01 01:00:00 2026-11-15 21:09:21 c1
|
||||
e06e019 2026-10-01 02:00:00 2026-11-17 21:03:30 c2
|
||||
99f29b6 2026-10-01 03:00:00 2026-11-19 21:03:20 c3
|
||||
```
|
||||
|
||||
- 不给 `--per-day` 时**每天一个**提交;给了则一天最多放这么多个,放满换到下一个日期。
|
||||
- `--day-gap` 是相邻两个提交日期间隔的天数,默认 1(连续日期)。
|
||||
- 重排后每条提交仍落在该日的 21:00–23:00 内,同日多条严格递增。
|
||||
- `--per-day` / `--day-gap` 必须配合 `--start-date`,否则报错提示。
|
||||
|
||||
### 预览示例
|
||||
|
||||
```text
|
||||
@@ -77,6 +106,9 @@ git reset --hard refs/kopsc-backup/main-20261101-093000
|
||||
| `--seed N` | 随机种子,同一批提交用同一种子得到相同结果 |
|
||||
| `--remote <名称>` | 强推到哪个远程,默认取唯一远程 |
|
||||
| `--branch <名称>` | 改写的分支,默认当前分支 |
|
||||
| `--start-date <YYYY-MM-DD>` | 重排日期:从该日起按顺序重新分配提交日期(默认保留原日期) |
|
||||
| `--per-day N` | 重排时每天最多放 N 个提交,默认 1;需配合 `--start-date` |
|
||||
| `--day-gap N` | 重排时相邻提交日期间隔 N 天,默认 1;需配合 `--start-date` |
|
||||
| `--no-push` | 只改写本地,不推送 |
|
||||
| `-y`, `--yes` | 确认执行(没有它只预览) |
|
||||
|
||||
|
||||
Reference in New Issue
Block a user