我有一个项目,它使用更漂亮的格式。我希望我的远程代码存储库拥有格式一致的文件。由于这个原因,我在package.json文件中添加了一个脚本,它将把整个代码基格式化为一行命令(npm run format)。

这行得通!但问题是,有时我可能忘记将git push之前的代码格式化为远程存储库。而且,为了格式化代码,我也不愿意用不必要的提交来乱搞我的git历史记录。
我决定自动化并选择git挂钩,这将在每次向暂存区域添加文件时格式化我的代码库:npm run format。但我似乎没有为我的用例找到一个git挂钩。
是否有可以在暂存文件之前运行的钩子?
发布于 2022-09-23 21:09:32
没有这样的吉特钩。但是,如果要处理格式设置,则有两个选项。
一种是在提交之前使用pre-commit钩子检查文件。这不会阻止您添加它们,但它将阻止您提交它们。但是,如果您使用一些高级工作流,使用许多临时和修复提交的高级工作流,那么pre-commit挂钩可能会非常麻烦。
另一种选择是使用干净的过滤器。您可以在.git/info/attributes文件中创建如下模式:
src/**/*.js filter=prettier然后可以将以下内容添加到.git/config中
[filter "prettier"]
smudge = cat
clean = "YOUR-PRETTIER-COMMAND-HERE"您可以用一个命令替换YOUR-PRETTIER-COMMAND-HERE,该命令从标准输入读取文件,并以适当的格式将其写入标准输出。(不可能使用在文件系统上设置格式的程序。)它将在运行JavaScript时通过该过滤器自动运行git add文件,并以正确的格式将它们存储在存储库中。
https://stackoverflow.com/questions/73831997
复制相似问题