我被 git 的 Windows/Linux 行尾问题所困扰。看来,通过 GitHub、MSysGit 和其他来源,最好的解决方案是将本地存储库设置为使用 linux 样式的行尾,但设置core.autocrlf为true. 不幸的是,我没有足够早地这样做,所以现在每次变化时,行尾都是无的。
core.autocrlf
true
我以
gitattributes的 git 文档现在记录了另一种“修复”或规范化项目中所有行尾的方法。这是它的要点:
$ echo "* text=auto" >.gitattributes $ git add --renormalize . $ git status # Show files that will be normalized $ git commit -m "Introduce end-of-line normalization"
如果任何不应规范化的文件出现在 git status 中,请在运行 git add -u 之前取消设置其文本属性。 manual.pdf -text 相反,git 没有检测到的文本文件可以手动启用规范化。 weirdchars.txt text
如果任何不应规范化的文件出现在 git status 中,请在运行 git add -u 之前取消设置其文本属性。
manual.pdf -text
相反,git 没有检测到的文本文件可以手动启用规范化。
weirdchars.txt text
这利用了--renormalize2018 年 1 月发布的 git v2.16.0 中添加的新标志。对于旧版本的 git,还有几个步骤:
--renormalize
$ echo "* text=auto" >>.gitattributes $ rm .git/index # Remove the index to force git to $ git reset # re-scan the working directory $ git status # Show files that will be normalized $ git add -u $ git add .gitattributes $ git commit -m "Introduce end-of-line normalization"