我已经使用 git 并将 autocrlf 设置为 true 一段时间了。我一直通过 cygwin 与 git-svn 一起使用它。这给我带来了很多问题,我明白了here https://stackoverflow.com/questions/2016673/definitive-recommendation-for-git-autocrlf-settings and here https://stackoverflow.com/questions/1249932/git-1-6-4-beta-on-windows-msysgit-unix-or-dos-line-termination我应该把它关掉。如何“消除主干和主干之间的损害”?
如果您只想在一次提交中修复它,然后不管它,您可以执行以下操作:
find . -not \( -path ./.git -prune \) -type f -exec sed -i -e 's/\r//g' {} +
注意:这将从中删除 CR存储库中的每个文件. Add -name '*.someext'
或之后的其他条款-type f
调整查找范围。
如果您想编辑之前的提交(请注意,这会破坏其他人尝试将其更改合并到您的分支中!),您可以使用git filter-branch
- 编写一个执行类似操作的脚本find
上面的调用,然后将其传递给类似的东西
git filter-branch --tree-filter /full/path/to/myscript.sh master otherbranch
这将重写历史记录,消除源代码存储库中曾经存在的任何 CR。请注意,如果您在 git-svn 创建的任何提交上运行它,这可能会破坏 git-svn。你可以使用类似的东西trunk..mylocalbranch
仅在本地提交上运行它。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)