使git只跟踪文件中的某些行 我对它的属性感到困惑。

使git只跟踪文件中的某些行 我对它的属性感到困惑。,git,gitattributes,Git,Gitattributes,我不确定我要做的是否可行:我有一个IDE为我的项目生成的设置文件,这个文件经常更新。它基本上是一个文本文件,但建议不要在文本模式下编辑它。我允许自己添加和编辑文件的某些部分,但我让IDE的GUI来完成其余部分,否则我可能会遇到问题 部分文件由GUI更改,部分文件由我更改我希望git忽略GUI所做的更改或添加的行,但跟踪我所做的更改。 我可以将GUI和反之亦然的更改融入到模式中。例如,下面的命令只能打印我想让git跟踪的行: egrep-v(单词|出现|在|行中|我|不|想要|吉特|跟踪) 我遇到

我不确定我要做的是否可行:我有一个IDE为我的项目生成的设置文件,这个文件经常更新。它基本上是一个文本文件,但建议不要在文本模式下编辑它。我允许自己添加和编辑文件的某些部分,但我让IDE的GUI来完成其余部分,否则我可能会遇到问题

部分文件由GUI更改,部分文件由我更改我希望git忽略GUI所做的更改或添加的行,但跟踪我所做的更改。

我可以将GUI和反之亦然的更改融入到模式中。例如,下面的命令只能打印我想让git跟踪的行:

egrep-v(单词|出现|在|行中|我|不|想要|吉特|跟踪)

我遇到了
gittributes
和。因此,我使用上面的命令创建了一个过滤器,并将其放入我的
~/.gitconfig
中的
smudge
clean
。我已经设法让它工作了,但问题是:我不想让git实际删除没有通过过滤器的行。我只希望git忽略对这些行的任何更改

希望我说清楚。

不,我不能那样做

如果IDE的配置格式支持包含文件,那么您可以将所需的设置拆分为一个单独的文件(由Git跟踪),只需将其包含在主配置中(您应该将其添加到
.gitignore
,这样就不会打扰您了)

如果没有,您仍然可以找到一种方法,在不跟踪主配置的情况下将设置偷偷带入。例如,如果您想要强制执行代码样式设置,您应该尝试

这就是自动化所能带给你的。@jthill还提出了一种半手动方法,您可以编写一个脚本来更改所需的设置,但您必须记住在适当的时候运行它


(请注意:存储IDE或编辑器文件以保存
.editorconfig
——在任何有多台开发人员/计算机的项目中都被认为是一种不好的做法。冲突几乎是不可避免的,即使您独自一人但有两台计算机,也可能会遇到冲突。安装路径等差异可能会渗透到配置中。)d让你的生活陷入地狱,每次在另一台计算机上提交配置时都会破坏一台计算机上的构建。)

不要跟踪设置文件,请跟踪脚本以设置所需的特定设置。