feat: 新增 git.time 修改最后一次提交时间命令
This commit is contained in:
+48
-3
@@ -2,16 +2,61 @@
|
||||
|
||||
> 返回 [README.md](README.md)
|
||||
|
||||
按日期范围批量调整提交时间,然后强推。用于把一批提交的时分秒统一挪到某个时间段。
|
||||
按日期范围批量调整提交时间,或修改最后一次提交的时间,然后强推。
|
||||
|
||||
```bash
|
||||
kopsc git retime 2026-10-01 2026-10-15 # 预览:会改哪些提交、改成什么时间
|
||||
kopsc git retime 2026-10-01 2026-10-15 --yes # 确认后真正改写并强推
|
||||
|
||||
kopsc git time 2026-11-05 22:30:00 # 预览:修改最后一次提交的时间
|
||||
kopsc git time 2026-11-05 22:30:00 --yes # 确认后修改并强推
|
||||
```
|
||||
|
||||
> ⚠️ **这会改写历史并强推**,提交 SHA 会全部变化。默认只预览、不改任何东西,必须显式加 `--yes` 才会执行。
|
||||
> ⚠️ **这会改写历史并强推**,提交 SHA 会变化。默认只预览、不改任何东西,必须显式加 `--yes` 才会执行。
|
||||
|
||||
## 改写提交时间(git.retime)
|
||||
## 修改最后一次提交时间(git.time)
|
||||
|
||||
`kopsc git time <时间>` 把本地最后一次提交的作者时间和提交时间改为用户指定的时间,然后强制推送。
|
||||
|
||||
```bash
|
||||
kopsc git time 2026-11-05 22:30:00 # 预览
|
||||
kopsc git time 2026-11-05 22:30:00 --yes # 修改并强推
|
||||
kopsc git time 2026-11-05 22:30:00 --no-push # 只改本地,不推送
|
||||
```
|
||||
|
||||
### 时间格式
|
||||
|
||||
时间格式必须是 `yyyy-MM-dd HH:mm:ss`,如 `2026-11-05 22:30:00`。格式不正确会报错。
|
||||
|
||||
### 预览示例
|
||||
|
||||
```text
|
||||
修改最后一次提交的时间
|
||||
|
||||
提交: abc1234 feat: 新增功能
|
||||
当前时间: 2026-11-05 10:15:30
|
||||
修改为: 2026-11-05 22:30:00
|
||||
|
||||
将强推到 origin/main
|
||||
|
||||
这是破坏性操作,会改变提交历史。加 --yes 确认执行。
|
||||
```
|
||||
|
||||
### 实现细节
|
||||
|
||||
同时修改 Author Date 和 Committer Date,确保远程页面(如 Gitea)显示正确时间。
|
||||
|
||||
### 选项
|
||||
|
||||
| 选项 | 说明 |
|
||||
| --- | --- |
|
||||
| `<时间>` | 必填,格式 `yyyy-MM-dd HH:mm:ss` |
|
||||
| `--remote <名称>` | 强推到哪个远程,默认取唯一远程 |
|
||||
| `--branch <名称>` | 操作的分支,默认当前分支 |
|
||||
| `--no-push` | 只改写本地,不推送 |
|
||||
| `-y`, `--yes` | 确认执行(没有它只预览) |
|
||||
|
||||
## 批量改写提交时间(git.retime)
|
||||
|
||||
`kopsc git retime <开始日期> <结束日期> [选项]` 把该日期范围内(含两端)的提交,
|
||||
**保留各自的原日期**,只把时分秒重排到 **21:00–23:00** 之间,然后 `git push --force-with-lease`。
|
||||
|
||||
Reference in New Issue
Block a user