git - 为什么在取消 git 提交后我的更改消失了,如何恢复它们?
问题描述
这是我所做的:
- 编码 8 小时的更改。
git status
显示我的所有更改。git add -A
git commit -m "Foo"
. 预提交 git 钩子使用husky
and触发lint-staged
。- 我记得有一个我未能修复的 TypeScript 输入错误,所以我按 Ctrl+C 取消。
- 心不在焉,我又跑
git commit -m "Foo"
了一次,立即取消。 - 变化消失了!文件被还原,
git status
干净,git log
并且git reflog
不显示新的提交。
为什么我的更改被还原了?我该如何恢复它们?
解决方案
好吧,这是lint-staged
罪魁祸首。它隐藏了我的更改。
所以跑步git stash apply
恢复了他们!
⚠ 不要尝试lint-staged
在同一个 git repo 上并行运行多个实例(例如在 monorepo 中的每个项目上)。这将破坏您的更改,而无法恢复它们。
如果你在 monorepo 上工作,要么按顺序 lint 项目,要么放弃lint-staged
并 lint 整个代码库,包括未暂存的文件。
推荐阅读
- python - 找到一列的最接近匹配索引并返回另一列值 wrt 测试一维数组
- javascript - vRO indexOf 未返回预期结果
- python - 使用随机数生成器时 on_message 上的错误输出
- django - Django如何制作选择表单
- php - 按最近的日期对 php 对象进行排序
- jwt - 关于 JWT 授权的困惑
- ios - SwiftUI 组合:@Published 仅适用于类的属性
- arrays - 如何使用数组对在 VBA 中创建的图形进行动画处理
- wordpress - 在 wordpress 中创建隐藏的自定义帖子类型 - 但不完全
- apache-kafka - Zookeeper 已启动,但使用 docker-compose 时 kafka 服务器未启动