Repository navigation
Commit 038a52b
committed
fix(hooks): 提交门禁失败时不再丢弃未暂存改动
lint-staged@15.5.0 的失败路径是「git reset --hard HEAD 清掉整个工作树 → 靠
git stash apply --index 重建 → 随后 drop 掉备份」:工作树先被毁掉,还原不成
立就当场丢在制品(控制方实测到丢改动,备份只剩悬空 commit c85e00a1;本机复
跑虽侥幸还原,但整个文件被 LF→CRLF 重写)。本批是多代理并发 + 常带未暂存改
动 ⇒ 门禁在任何路径上都不得碰工作树。
.husky/pre-commit 改跑 lint-staged --no-stash --no-hide-partially-staged:
不建/不 drop 备份、不 reset --hard、不 checkout --force。代价是同时失去 hide
(上游把两者绑定):门禁改看工作树态,且部分暂存文件跑完会被整文件 git add,
不丢内容但会抹掉「只提交一半」的意图 —— 详见计划 Task 4 节附带隐患条目。
实测:失败路径 [FAILED] + exit=1(拦截力不变)、未暂存改动 sha256 前后相同、
部分暂存场景工作树逐字相同、成功路径 [COMPLETED] exit=0。1 parent bf8e879 commit 038a52b
2 files changed
Lines changed: 29 additions & 1 deletion
File tree
- .husky
- docs/superpowers/plans
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
| 8 | + | |
| 9 | + | |
Lines changed: 20 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
715 | 715 | | |
716 | 716 | | |
717 | 717 | | |
| 718 | + | |
| 719 | + | |
| 720 | + | |
| 721 | + | |
| 722 | + | |
| 723 | + | |
| 724 | + | |
| 725 | + | |
| 726 | + | |
| 727 | + | |
| 728 | + | |
| 729 | + | |
| 730 | + | |
| 731 | + | |
| 732 | + | |
| 733 | + | |
| 734 | + | |
| 735 | + | |
| 736 | + | |
| 737 | + | |
718 | 738 | | |
719 | 739 | | |
720 | 740 | | |
| |||
0 commit comments