Git 将文本文件从LF行尾批量转换为CRLF
我有一个vb.net(VisualStudio2010)项目,它的版本由git(1.7.10.msysgit.1)控制。我犯了一个错误,在git中将Git 将文本文件从LF行尾批量转换为CRLF,git,dos2unix,Git,Dos2unix,我有一个vb.net(VisualStudio2010)项目,它的版本由git(1.7.10.msysgit.1)控制。我犯了一个错误,在git中将core.autocrlf保留为true。现在我已经将core.autocrlf设置为false,但是源代码已经在存储库中转换为LF行结尾。我想把行尾改回CRLF 我纠正这种情况的计划是: git克隆 删除克隆中的所有源代码文件 git签出-f 将所有LF转换为CRLF git提交 git从原始回购中提取 我对步骤4有问题。项目中有很多文件,希望有一
core.autocrlf
保留为true。现在我已经将core.autocrlf
设置为false,但是源代码已经在存储库中转换为LF行结尾。我想把行尾改回CRLF
我纠正这种情况的计划是:
dos2unix
,但它似乎不会处理子文件夹,它告诉我文本文件看起来是二进制的
那么,将源代码批量转换回CRLF行结尾的最佳方法是什么呢?我错过了一个显而易见的方法:
git克隆到文件夹A.git config core.autocrlf false
git克隆到文件夹B.git config core.autocrlf true
从文件夹B中删除所有源文件
git签出-文件夹B中的f
将文件夹B中的所有文件和文件夹剪切并粘贴到文件夹A
git提交到文件夹A中
git从原始存储库中提取
我采用了Endy的步骤,但将其简化为仅使用一个存储库:
1. git config core.autocrlf true
2. delete all files in your working tree (except the .git folder for sure)
3. git checkout -f
4. git config core.autocrlf false
5. git commit -am "corrected all line endings from LF to CRLF"
克里斯托夫的回答几乎对我们有用,但出于某种原因,吉特漏掉了一堆文件。(我们使用的是2.20版)。我们不得不强迫git通过“git读取树——空”重新扫描所有内容。这样做之后,一些文件显示为“删除”,这是不正确的,但在重置和添加之后,这对我们来说是有效的
1. git config core.autocrlf true
2. delete all files in your working tree (except the .git folder for sure)
3. git checkout -f
4. git config core.autocrlf false
5. git read-tree --empty
6. git add .
7. git reset
8. git add .
9. git commit -m "corrected all line endings from LF to CRLF"
美好的但是,如果忽略/未跟踪文件,请小心。