Git没有意识到文件没有变化

时间:2016-04-26 21:11:22

标签: git

我有两个文件显示为"已修改"即使他们不是;我确定的原因是因为如果我克隆存储库,那么远程和本地之间不应该有任何相关的变化。不是吗?

现在,我知道我有一个.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并且它不再检查文件校验和。

1 个答案:

答案 0 :(得分:1)

正如“Dealing with line endings (Windows)”中所述,.gitattributes指令将在结帐时应用。

因此要么接受lf转换(git add .git push),要使所有文本文件都具有LF EOL。

或者从* text eol=lf文件中删除.gitattributes指令,只添加此文件,推送它,然后再次克隆存储库以检查结帐时是否没有更改文件。