我正在做Windows中的回购.Repo最初是在Mac上创建的,其中all个文件仅使用LF作为行尾.当我在另一台Mac上克隆repo时,我看到所有文件都以LF作为行尾.当我在Windows上克隆时,some个文件(但不是所有文件)的行尾都是CRLF.core.autocrlf
设置为FALSE.在git check-attr -a foo
中判断的文件上没有任何属性.如果我参选:
git rev-parse HEAD:foo # Outputs "abc123...abc"
git cat-file -p "abc123...abc" | xxd
然后我看到了带有LF结尾的文件.(在发现git cat-file -p ... > temp.txt
将编码更改为UTF-16后,我在Windows上安装了xxd,以尽量减少可能引入错误的工具)
git status
表示foo
没有变化.如果我将foo
中的行尾从CRLF转换为LF,则git status
显示有变化.即使文件应该只有LF.
如果我在Windows上进入WSL并运行git status
,那么它会显示所有文件,其中包含错误的CRS,它们被更改了.然而,"Git Bash"给出的结果与Windows相同.
这到底是怎么回事?如何让Git停止更改我的行尾?