You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

lint-staged校验报错时,如何将变更文件从Git Stash区恢复到工作区?

如何将Git Stash区的变更恢复到工作区

一、核心恢复命令

  • 先查看所有stash记录,确认目标版本:
    git stash list
    
    输出示例:stash@{0}: WIP on main: xxxxxx,其中stash@{0}是最近的一条stash。
  • 恢复最近的stash到工作区(保留stash记录):
    git stash apply
    
  • 恢复指定stash记录(比如stash@{1}):
    git stash apply stash@{1}
    
  • 恢复后直接删除对应stash记录(用pop替代apply):
    git stash pop
    # 指定记录:git stash pop stash@{1}
    

二、关于lint-staged报错的补充

从你的配置来看,commit时lint-staged执行eslint --fix报错,导致变更被自动暂存到stash(这是lint-staged的默认机制:执行前暂存未提交内容,失败后恢复)。除了恢复stash,你可以:

  1. 查看eslint具体报错信息,修复代码中的语法或规范问题后再提交
  2. 紧急情况下可跳过lint检查提交(不推荐):
    git commit -m "test" --no-verify
    

你的项目配置参考

package.json

// package.json
{
  "lint-staged": {
    "./src/**/*": ["eslint --fix", "prettier --write"]
  },
  "devDependencies": {
    "@commitlint/cli": "^18.4.3",
    "@commitlint/config-conventional": "^18.4.3",
    "@typescript-eslint/eslint-plugin": "^6.13.1",
    "@typescript-eslint/parser": "^6.13.1",
    "@vitejs/plugin-vue": "^4.5.0",
    "eslint": "^8.54.0",
    "eslint-config-prettier": "^9.0.0",
    "eslint-plugin-prettier": "^5.0.1",
    "husky": "^8.0.3",
    "lint-staged": "^15.1.0",
    "prettier": "^3.1.0",
    "typescript": "^5.2.2",
    "vite": "^5.0.0",
    "vue-tsc": "^1.8.22"
  }
}

pre-commit钩子脚本

# pre-commit
#!/usr/bin/env sh
. "$(dirname -- "$0")/_/husky.sh"

npx lint-staged

内容的提问来源于stack exchange,提问作者quxiaodong

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.05 07:46:27