我有两个文件显示为"已修改"即使他们不是;我确定的原因是因为如果我克隆存储库,那么远程和本地之间不应该有任何相关的变化。不是吗?
现在,我知道我有一个.gitattributes
文件:
#
# Set the default behavior, in case people don't have core.autocrlf set
* text eol=lf
#
# Denote all files that are truly binary and should not be modified
*.gif binary
*.ico binary
...将行结尾强加到LF
(UN * X),我知道我的文件是CRLF
(Windows),但是再次,不应该&#39 ;当我从第一次克隆回购时,它们之间有任何差异,虽然我知道该文件在checkout
强制执行。
那么,有什么方法我可以告诉.gitattributes
不要关心几个文件,例如:
src/main/resources/db/migration/V1__sample01.sql text eol=crlf
注意:我无法删除文件并重新创建它们,因为我使用的是Flyway,它只是通过更改行结束来识别文件是否被更改。 / p>
更新:我无法指定每个文件(作为解决方法);无论如何,现在我已经能够将这些文件更改为LF
,因为我们升级到了Flyway 4.X并且它不再检查文件校验和。
答案 0 :(得分:1)
正如“Dealing with line endings (Windows)”中所述,.gitattributes
指令将在结帐时应用。
因此要么接受lf转换(git add .
,git push
),要使所有文本文件都具有LF EOL。
或者从* text eol=lf
文件中删除.gitattributes
指令,只添加此文件,推送它,然后再次克隆存储库以检查结帐时是否没有更改文件。