我正在努力为在行尾包含一些 ^M 的文件创建补丁。当我编辑文件时,我没有看到 ^M,但是由 format-patch 创建的补丁确实在补丁区域上下文中指出了它。因此,当我尝试将其应用于新的 git 树时,git am 正在行尾搜索此 ^M 但没有看到它;它是错误的结果。
git format-patch 有什么想法或解决方法可以停止考虑这个 ^M 吗?
提前致谢
PS:对于上下文,我对这个 git 树没有写权限,这就是我需要打补丁的原因。
我正在努力为在行尾包含一些 ^M 的文件创建补丁。当我编辑文件时,我没有看到 ^M,但是由 format-patch 创建的补丁确实在补丁区域上下文中指出了它。因此,当我尝试将其应用于新的 git 树时,git am 正在行尾搜索此 ^M 但没有看到它;它是错误的结果。
git format-patch 有什么想法或解决方法可以停止考虑这个 ^M 吗?
提前致谢
PS:对于上下文,我对这个 git 树没有写权限,这就是我需要打补丁的原因。
Git 用 ^M 表示 Windows 风格的换行符的 CR。如果您将文件转换为 Unix 样式的行尾,这些应该会消失。
关闭 autocrlf 的一个缺点是 git diff 的输出将 CR 字符(由 ^M 指示)突出显示为空白错误。要关闭此“错误”,您可以使用 core.whitespace 设置:
参看。http://lostechies.com/keithdahlby/2011/04/06/windows-git-tip-hide-carriage-return-in-diff/或这个 StackOverflow 问题:git-diff 忽略 ^M
git format-patch --ignore-space-change --ignore-whitespace -1 mychanges.patch
这对我有帮助。如果您阅读本文,您可以更好地理解。