首页 > 解决方案 > 提交非空白更改

问题描述

我有一个问题,我有一个很大的提交,它改变了大约一千行代码。

我使用 Intellij IDEA 进行编码。更新项目、签出另一个分支等时会出现选项卡问题。这需要将大量文件添加到本地更改列表中。虽然内置差异工具显示“内容相同”

git diff 返回这个,例如

-       trailingComma: 'es5',
-       useTabs: true,
-       singleQuote: true,
+    trailingComma: 'es5',
+    useTabs: true,
+    singleQuote: true,

也许,问题出在配置文件中

我在下面附上了我的全局配置

core.filemode=false
filter.lfs.smudge=git-lfs smudge -- %f
filter.lfs.process=git-lfs filter-process
filter.lfs.required=true
filter.lfs.clean=git-lfs clean -- %f
credential.helper=osxkeychain
filter.tabspace.smudge=unexpand -t 4
filter.tabspace.clean=expand -t 4
filter.tabspace2.smudge=unexpand -t 2
filter.tabspace2.clean=expand -t 2

有什么方法可以设置 git 来忽略空格的变化?

标签: gittabswhitespace

解决方案


如果您只想添加更改的某些部分,您可以使用git add -p交互式单步执行每个块并仅选择您想要的更改。

但是,在您的情况下,这仍然会很麻烦,而且 Git 在这里没有提供更好的选择。可以使用涂抹/清洁过滤器来调整代码,但这在这里不起作用,因为过滤器不知道现有代码的格式。

如果现有代码已经符合您项目的标准,那么最好修复您的编辑器,以免不必要地重新格式化代码。大多数编辑器都有这些设置,并且可以进行适当的配置。您可以考虑将文件.editorconfig添加到您的存储库以告诉所有人这些标准是什么,或者使用每个人都需要在签入之前运行的合适的代码格式化工具(可能以 CI 检查为后盾)。

如果问题是现有代码不符合您项目的标准,那么最好创建一个初始提交,根据您的项目标准格式化代码并且不包含其他更改,然后进行更改稍后,后续提交。


推荐阅读