如何解除autocrlf的损坏?

时间:2011-05-24 22:29:45

标签: git git-svn

我一直在使用git并将autocrlf设置为true一段时间。我一直在使用git-svn通过cygwin。它给我带来了很多问题,我看到herehere我应该把它关掉。如何“撤消主干和主人之间的伤害?”

1 个答案:

答案 0 :(得分:4)

如果您只想在一次提交中修复它,然后不管它,您可以执行以下操作:

find . -not \( -path ./.git -prune \) -type f -exec sed -i -e 's/\r//g' {} +

注意:这将从存储库中的每个文件中删除CR。在-name '*.someext'之后添加-type f或其他条款以调整查找范围。

如果你想编辑之前的提交(注意这会打破其他人试图将他们的更改合并到你的分支中!),你可以使用git filter-branch - 写一个类似于{{1}的脚本调用上面的内容,然后用类似

的方式传入它
find

这将重写历史记录,消除源代码存储库中曾经存在的任何CR。请注意,如果您在git-svn创建的任何提交中运行它,这可能会破坏git-svn。您可以使用类似git filter-branch --tree-filter /full/path/to/myscript.sh master otherbranch 的内容仅在本地提交上运行它。