【问题标题】:Commit doesn't happen [duplicate]提交不会发生[重复]
【发布时间】:2021-06-15 01:11:50
【问题描述】:

我设置了husky 来进行预提交格式化和运行测试。当我做git commit -m "readme fix" 时,我得到了这个:

 PASS  src/App.test.jsx
  ✓ plug (15 ms)

Test Suites: 1 passed, 1 total
Tests:       1 passed, 1 total
Snapshots:   0 total
Time:        0.91 s, estimated 1 s
Ran all test suites related to changed files.

Watch Usage
 › Press a to run all tests.
 › Press f to run only failed tests.
 › Press q to quit watch mode.
 › Press p to filter by a filename regex pattern.
 › Press t to filter by a test name regex pattern.
 › Press Enter to trigger a test run.

但实际上并没有发生提交。我不能用终端做任何事情?除了 Ctrl + C。即使我尝试输入 a、f、q 等 - 也没有任何反应。如何实际提交?我做错了什么?

【问题讨论】:

  • 可以分享一下哈士奇运行的命令吗?
  • @evolutionxbox 是 husky 运行的:lint-staged; npm test 这是npm test 运行的:react-scripts test; echo test

标签: git husky


【解决方案1】:

一长串“Press something...”消息表明测试运行者并没有退出,而是在等待做更多的事情。按q,它将退出,提交将结束。

更改运行测试的方式,使其不在“监视”模式下启动(您可能应该从其命令行中删除 --watch)。

您发布的输出类似于jest 的输出。看看Jest CLI options

--watch--watchAll 的目的是以 TDD 工作方式运行 Jest。在初始执行测试后,它会监视测试文件并在修改后立即运行它们。您不再关心运行它,您只需编写用例和代码。
它不适合你想要的。


顺便说一句,运行测试或代码检查或代码美化器或任何其他需要超过 0.5 秒才能完成的程序是个坏主意。 Git 和 Subversion 或其他较旧的 CVS-es 之间的主要区别之一是,使用 Git,提交会立即发生。在 Git 哲学中提交是保存工作的更明智的方式。您应该经常提交,并且提交操作不应该妨碍您。通过添加冗长的操作作为提交挂钩,您可以防止自己使用 Git,因为它的设计目的是。

【讨论】:

  • 我尝试按 q,但没有任何反应。此外,我没有在任何地方指定 --watch 选项,也没有在我的脚本中的任何地方找到它
猜你喜欢
  • 2018-12-16
  • 2021-06-15
  • 1970-01-01
  • 2017-10-29
  • 1970-01-01
  • 1970-01-01
  • 2019-01-01
  • 2015-07-17
  • 1970-01-01
相关资源
最近更新 更多