1

我正在努力为在行尾包含一些 ^M 的文件创建补丁。当我编辑文件时,我没有看到 ^M,但是由 format-patch 创建的补丁确实在补丁区域上下文中指出了它。因此,当我尝试将其应用于新的 git 树时,git am 正在行尾搜索此 ^M 但没有看到它;它是错误的结果。

git format-patch 有什么想法或解决方法可以停止考虑这个 ^M 吗?

提前致谢

PS:对于上下文,我对这个 git 树没有写权限,这就是我需要打补丁的原因。

4

2 回答 2

1

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

于 2011-12-18T16:53:31.367 回答
0

git format-patch --ignore-space-change --ignore-whitespace -1 mychanges.patch

这对我有帮助。如果您阅读本文,您可以更好地理解。

于 2014-06-12T09:04:23.200 回答