我克隆存储库切换到我的分支,当我打印git状态时,我看到修改文件,我尝试做git reset --hard但是没有效果:((
git status
On branch release
Changes not staged for commit:
modified: htdocs/fonts/OfficinaSansBoldC.eot
modified: htdocs/fonts/OfficinaSansBoldC.svg
modified: htdocs/fonts/OfficinaSansBoldC.ttf
modified: htdocs/fonts/OfficinaSansBoldC.woff
modified: htdocs/fonts/OfficinaSansC-Book.eot
modified: htdocs/fonts/OfficinaSansC-Book.svg
modified: htdocs/fonts/OfficinaSansC-Book.ttf
modified: htdocs/fonts/OfficinaSansC-Book.woff
no changes added to commit
git reset --hard origin/release
git status
On branch release
Changes not staged for commit
modified: htdocs/fonts/officinasansboldc.eot
modified: htdocs/fonts/officinasansboldc.svg
modified: htdocs/fonts/officinasansboldc.ttf
modified: htdocs/fonts/officinasansboldc.woff
modified: htdocs/fonts/officinasansc-book.eot
modified: htdocs/fonts/officinasansc-book.svg
modified: htdocs/fonts/officinasansc-book.ttf
modified: htdocs/fonts/officinasansc-book.woff
no changes added to commit
答案 0 :(得分:5)
要输入core.autocrlf的问题是它可以更改eol(行尾)字符,即使对于不应该触及的(二进制)文档也是如此。
尝试:
git config --global core.autocrlf false
git clone /url/your/repo
(意思是再次克隆你的回购,看看那些差异是否还存在)
使用git 2。8(2016年3月),您可以快速检查这些更改是否与eol相关。
commit a7630bd见Torsten Bögershausen (tboegi
)(2016年1月16日)
(Junio C Hamano -- gitster
--于2016年2月3日commit 05f1539合并)
ls-files
:添加eol diagnostics在跨平台环境中工作时,用户可能想要检查文本文件是否在存储库中标准化存储,以及是否正确设置了
.gitattributes
。让Git可以在索引和工作树中显示行结尾和有效的text / eol属性。
行尾("
eolinfo
")如下所示:
"-text" binary (or with bare CR) file
"none" text file without any EOL
"lf" text file with LF
"crlf" text file with CRLF
"mixed" text file with mixed line endings.
有效的text / eol属性是以下之一:
"", "-text", "text", "text=auto", "text eol=lf", "text eol=crlf"
git ls-files --eol
提供如下输出:
i/none w/none attr/text=auto t/t5100/empty
i/-text w/-text attr/-text t/test-binary-2.png
i/lf w/lf attr/text eol=lf t/t5100/rfc2047-info-0007
i/lf w/crlf attr/text eol=crlf doit.bat
i/mixed w/mixed attr/ locale/XX.po
显示索引中数据中使用的eol约定('
i
'), 并在工作树中('w
'),以及有效的属性, 对于显示的每条路径。
答案 1 :(得分:1)
我也遇到了同样的问题。
当我运行命令git diff
时,结果是:
Binary files a/app/webroot/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf and b/app/webroot/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf differ
warning: CRLF will be replaced by LF in app/webroot/font-awesome-4.4.0/fonts/fontawesome-webfont.ttf.
The file will have its original line endings in your working directory.
我试过了git reset --hard .
,但它没有用。
但是当*.ttf binary
附加到.gitattributes
文件中时,reset
命令会起作用。
欢呼。
答案 2 :(得分:0)
不起作用的原因是传递给git的行结束信息冲突。试试:
git ls-files --eol | grep /path/to/problematic/file
您可以在.git / info / attributes文件中添加一行以缓解此问题。有关详细信息,请参见我的答案here