【问题标题】:Unstaged changes could not be restored due to a merge conflict由于合并冲突,无法恢复未暂存的更改
【发布时间】:2020-12-10 07:22:20
【问题描述】:

当我执行git commit -m "commit message" 命令时,lint-staged 显示此错误:

我在 package.json 中的配置:

"husky": {
    "hooks": {
        "pre-commit": "npm run validate && lint-staged"
    }
},
"lint-staged": {
    "*.+(js|ts|tsx)": [
        "eslint"
    ],
    "**/*.+(js|json|ts|tsx)": [
        "prettier --write"
    ]
},

它在 ma​​c 上运行良好,但 windows-10 显示此错误。谁能告诉我windows出了什么问题?

【问题讨论】:

  • 在你的钩子运行后运行“git status”

标签: git git-commit git-husky lint-staged


【解决方案1】:

鉴于显示的消息:我认为这个钩子运行

  1. git stash -k(存储所有不在索引中的内容)
  2. 重新格式化暂存代码,然后运行git add
  3. git stash pop

在您的 Windows 机器上,您恰好处于以下配置中:

  • 一个。您有一些未上演的修改
  • 乙。当您重新格式化索引时,这些修改与索引冲突

“修复”是:

  • 手动运行git stash -k
  • 创建您的提交(预提交挂钩应无错误通过)
  • 运行git stash pop
  • 修复由此产生的冲突

【讨论】:

  • 感谢您的信息。但我可以向您确认我的存储库中没有冲突。我已经清理/重置了我的完整存储库,但错误并没有从 Windows 中消失。
  • @Arif:更新了我的回答中的“修复”段落
  • 要调试您的问题,您可以手动运行操作:如果您从 repo 的根目录运行 npm run validate 会得到什么?和lint-staged ?
  • 只要我将 npm 更改为纱线,例如 npm run validate && lint-staged 到 yarn validate && lint-staged,它就开始工作了。
  • hmmm,所以它看起来像一个 javascript 问题,并且两台机器上的软件包版本可能并不完全相同。好吧,既然你修好了它,我想你不需要深入研究它是如何工作的。
猜你喜欢
  • 1970-01-01
  • 2011-02-19
  • 2012-12-01
  • 1970-01-01
  • 2018-07-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-04-19
相关资源
最近更新 更多