我正在处理一个项目,我们最近开始使用git。从一开始设置并不完美,所以在人们开始克隆/工作后,我设置了.gitattributes文件,并且仍在对该文件进行一些更改。
考虑以下设置...
Alice和Bob都已经克隆了"repo.git",并且该存储库包含文件/myproj/src/file.ending,行尾使用\n
作为换行符,即该文件不包含\r
字符。
他们也都有.gitattributes文件,具有以下设置:
/myproj/src/file.ending -text
这告诉 git file.ending
不应被视为文本文件,因此不应进行换行符转换。因此,Alice 和 Bob 工作树中的文件也都使用
\n
作为行结尾符。现在,Alice 对 .gitattributes 进行以下更改:
/myproj/src/file.ending text
Alice希望这个变化能够生效,对她和Bob都有好处。
目前我所知道的唯一方法相当具有干扰性:
git rm --cached -r .
git reset --hard
我希望避免两件事情:
- 艾丽斯必须提交她的`.gitattributes`文件,才能真正测试它(上面的重置操作将覆盖她的更改)。
- 鲍勃必须清除他的索引和工作目录以获取更新。鲍勃不高兴。
那么,哪种方法是首选?
.gitattributes
以某种方式更改,你现在需要使用不同的策略过滤器(例如行末转换),Git也是这样假设的。 - user4003407