我有一个托管在github上的git存储库。许多文件最初是在Windows上开发的,我对行尾并不太小心。当我执行初始提交时,我也没有任何适当的git配置来强制执行正确的行结束。结果是,我的github存储库中有许多带有CRLF行结尾的文件。
我现在正在Linux上进行部分开发,我想清理一下代码行的结尾。如何确保文件在github上使用LF正确存储,并在我的工作副本中包含LF?
我设置了一个包含text eol=LF
的.gitattributes
文件,对吗?提交并推送后,我可以只rm
我的本地存储库并从github重新克隆以获得期望的效果吗?
发布于 2017-02-09 19:47:24
从git 2.10 (发布2016-09-03)开始,不需要单独枚举每个文本文件。Git 2.10 fixed the behavior of text=auto together with eol=lf。Source。
git代码库的根目录下的.gitattributes
文件:
* text=auto eol=lf
添加并提交它。
然后,您可以执行以下步骤,现在所有文件都已标准化:
git rm --cached -r . # Remove every file from git's index.
git reset --hard # Rewrite git's index to pick up all the new line endings.
来源:Answer by kenorb。
发布于 2022-02-19 05:03:44
我克隆Chromium depot_tools
到我的mac上,工作副本的所有文件都以CRLF结尾。我发现这个脚本解决了我的问题。
cd <your repo>
# config the local repo to use LF
git config core.eol lf
git config core.autocrlf input
# Copy files from the index to the working tree
git checkout-index --force --all
# If above line doesn't work, delete all cached files and reset.
git rm --cached -r .
git reset --hard
https://stackoverflow.com/questions/9976986
复制相似问题