我想创建一个工作流程,确保 PR 所有者在提交该 PR 之前执行
npm install && gulp compile-assets
。所以我添加了一个运行并执行以下步骤的 Github 工作流程
npm install && gulp compile-assets
git status --porcelain
看看是否有任何差异。这里的期望是没有任何更改,因为 npm install && gulp compile-assets
在本地所做的所有更改都应该已提交。但是,
git status --porcelain
似乎总是返回差异。当我应用 `git diff commited-file generated-file
我发现根本没有任何变化。差异显示
@@ -1,21 +1,21 @@
并且没有任何改变。但差异显示所有行都被删除并添加“但结果是相同的”
我尝试在
git config core.autocrlf false && git config core.filemode true
之前添加 git status --porcelain
但没有改变结果。
什么可能导致
git status --porcelain
显示文件差异而没有任何真正的更改?
这是一个屏幕截图,显示了显示差异的部分文件,但没有进行任何更改。
该项目有一个 .gitattribute 文件,其中包含以下内容
* text=auto
**/package.json text eol=lf
**/package-lock.json text eol=lf
输出肯定有变化。左边,第 14 行包含
"devDependencies": {
,右边是第 15 行。
很可能有人正在使用整洁的工具以某种方式格式化这些文件。如果这是您配置的工具,那就太好了,然后确保该工具具有适当的配置文件,以便用户可以从编辑器或命令行调用它。如果是另一个工具进行了不需要的更改,那么找出如何禁用该功能。
差异也可能主要在于空白的数量或类型;例如,使用制表符而不是空格,或不同数量的缩进,或不同的行结尾。其中任何一个都可能导致每条线的输出存在差异。在文件之前和之后运行
cat -v
或使用 od -tx1
或 xxd -g1
等工具可以帮助您找出文件中的实际字节以及相关差异是什么。