我有一个问题,我有一个大的提交,修改了大约一千行代码。
我使用Intellij IDEA进行编码。当更新项目、在另一个分支上签出等时,会出现标签的问题。这就需要在本地变更列表中添加大量文件。虽然内置的diff工具显示 "内容相同"
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忽略空白处的改变?
如果你想只添加更改的某些部分,你可以使用 git add -p
来交互式地浏览每个块,并只选择你想要的修改。
然而,在你的情况下,这仍然会是一堆麻烦,Git在这里并没有提供更好的选择。 可以使用smudgeclean过滤器来调整代码,但在这里是行不通的,因为过滤器不知道现有代码是什么格式。
如果现有的代码已经符合你项目的标准,那么最好是修正你的编辑器,这样它就不会无谓地重新格式化代码。 大多数编辑器都有这些设置,并且可以进行适当的配置。 你可以考虑在编辑器中添加 一个 .editorconfig
档案 到你的版本库,告诉大家这些标准是什么,或者使用一个合适的代码格式化工具,要求每个人在签入前运行(可能有CI检查支持)。
如果问题是现有的代码不符合你项目的标准,那么最好创建一个单一的初始提交,按照你项目的标准格式化代码,并且包含 毫无变化然后在第二次的后续提交中进行修改。