14

我在 Windows 上配置了git,git config --global core.autocrlf false因此 git 不会在结帐时自动将文件从 LF 行结尾转换为 CRLF。

当我在 Windows 上创建一个新文件并添加它时,我得到以下输出。

git add windows-file.txt
warning: CRLF will be replaced by LF in windows-file.txt.
The file will have its original line endings in your working directory.

因此,当将 windows-file.txt 添加到我想要的 git 索引时,git 正在将我的行结尾从 windows 更改为 unix。

我遇到的问题是工作目录版本没有改变,我该如何配置 git 以改变工作目录和 git 索引的行尾?

更新

在添加和提交之后,即使本地工作目录版本具有 windows 行结尾并且 repo 版本具有 unix 行结尾,git status 也不会显示任何差异。

更新回购根目录下 .gitattributes 的内容

# Set default behaviour, in case users don't have core.autocrlf set.
text eol=lf

# These files are text and should be normalized (convert crlf => lf)
*.java       text
*.xml        text
*.cmd        text
*.sh         text
*.txt        text
*.md         text
*.js         text
*.jsp        text
*.html       text
*.htm        text
*.vm         text
.project     text
.classpath   text
*.properties text
*.txt        text
*.bat        text
*.launch     text

# Denote all files that are truly binary and should not be modified.
*.png    binary
*.jpg    binary
*.jar    binary
*.class  binary
*.gz     binary
*.tar    binary
*.dll    binary
*.exe    binary
*.zip    binary
4

1 回答 1

14

当您没有未提交的更改时,请尝试:

git rm --cached -r . 
git reset --hard

删除本地文件并从索引中获取它们。

于 2017-08-31T08:05:13.197 回答