- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
在 Windows 中使用 Git Shell 创建diff 补丁(使用GitHub for Windows 时),补丁的字符编码 将为UCS-2 Little根据 Notepad++ 的 Endian(参见下面的屏幕截图)。
我怎样才能改变这种行为,并强制 git 使用没有 BOM 字符编码的 ANSI 或 UTF-8 创建补丁?
因为无法应用 UCS-2 Little Endian 编码的补丁而导致问题,我必须手动将其转换为 ANSI。如果我不这样做,我会收到“fatal: unrecognized input”错误。
从那时起,我也意识到我必须在Notepad++中手动将EOL从Windows格式(\r\n
)转换为UNIX(\n
)(编辑> EOL 转换 > UNIX)。如果我不这样做,我会收到“尾随空格”错误(即使所有空格都被修剪:“TextFX”>“TextFX 编辑”>“修剪尾随空格”)。
因此,要应用补丁我需要执行的步骤:
请看这张截图:
最佳答案
我不是 Windows 用户,所以请对我的回答持保留态度。根据Windows PowerShell Cookbook , PowerShell 预处理 git diff
的输出,将其分成几行。 Out-File
的文档Cmdlet 建议,>
与 | 相同不带参数的 Out-File
。我们还在 PowerShell documentation 中找到此评论:
The results of using the Out-File cmdlet may not be what you expect if you are used to traditional output redirection. To understand its behavior, you must be aware of the context in which the Out-File cmdlet operates.
By default, the Out-File cmdlet creates a Unicode file. This is the best default in the long run, but it means that tools that expect ASCII files will not work correctly with the default output format. You can change the default output format to ASCII by using the Encoding parameter:
[...]
Out-file formats file contents to look like console output. This causes the output to be truncated just as it is in a console window in most circumstances. [...]
To get output that does not force line wraps to match the screen width, you can use the Width parameter to specify line width.
所以,显然选择字符编码的不是 Git,而是 Out-File
。这表明 a) PowerShell 重定向真的应该只用于文本和 b)
| Out-File -encoding ASCII -Width 2147483647 my.patch
将避免编码问题。但是,这仍然没有解决 Windows 与 Unix 行尾的问题。有一些 Cmdlet(请参阅 PowerShell Community Extensions)可以转换行尾。
然而,所有这些重新编码并没有增加我对补丁的信心(补丁本身没有编码,只是一串字节)。前述Cookbook包含一个脚本 Invoke-BinaryProcess,可用于重定向未修改命令的输出。
要回避整个问题,另一种方法是使用 git format-patch
而不是 git diff
。 format-patch
直接写入文件(而不是标准输出),因此它的输出不会被重新编码。但是,它只能从提交中创建补丁,而不是任意差异。
format-patch
采用提交范围(例如 master^10..master^5
)或单个提交(例如 X,表示 X..HEAD)和创建格式为 NNNN-SUBJECT.patch 的补丁文件,其中 NNNN 是递增的 4 位数字,主题是补丁的(损坏的)主题。可以使用 -o
指定输出目录。
关于powershell - Windows 中的 Git Shell : patch's default character encoding is UCS-2 Little Endian - how to change this to ANSI or UTF-8 without BOM?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46441079/
this post完美地描述了我的原始问题:我想遵循TDD: 写一个小测试 观看失败 写足够的代码使它成功 观看成功 重复 我正在IntelliJ中从事Grails项目。如果我只想编写普通的JUnit
据我所知,little-oh 应该有一个接近无穷大的 n 的极限(函数/little-oh,omega 函数)= 0,对于 little omega,极限应该等于无穷大。但是,是否有可能存在多个 li
您好,我目前正在使用 Little Man Computer对于一个学校项目,我知道 LMC 有一个 ADD 和一个 SUB 功能。但是我知道 LMC 中没有乘法或除法函数,我想知道为什么会这样。 最
little-oh 和 little Omega 符号的用途/目的是什么? 尽管我完全理解符号本身及其代表的含义。我还没有看到任何一本书或算法在任何计算中使用它们,所以我不禁想知道如果不使用它们,为什
我正在阅读“小计划者”,以更好地理解编程的某些核心元素(即递归),并获得更多关于如何像程序员一样思考的想法。 这本书被推荐作为入门级书籍,并且在引言中指出,我所需要知道的只是英文,数字和计数(我会这样
考虑以下 s 表达式: ((lambda (car) (car (quote (a b c)))) cdr) 在我尝试过的大多数方案实现中,计算结果为 (b c)因为cdr传递给 lambda,将其命
我的目标是拥有一个在后台运行的服务,并以指定的时间间隔(例如每 10 分钟)将我的设备位置发送到远程服务器。我正在尝试使用 Little Fluffy Location Library 来优化电池生命
我刚刚学习了 Python (3.x),但我一直在将十六进制字符串转换为 float 。我有这个十六进制字符串值:'0x22354942F31AFA42CE6A494311518A43082CAF43
所以,我可以理解为 0x1234 的一个字,当存储为 little-endian 时,在内存中变为 0x3412。我还看到字节 0x12 作为位域 a:4,b:4 将存储为 0x21。但是,如果我有更
我有一个 C 程序,它通过套接字在 UDP 数据包中从大型机接收数据。 C 程序的主机正在从 Unix(大端)更改为 Linux(小端),程序不再运行。我目前没有更改大型机客户端程序的选项。 程序执行
我正在使用 PulseAudio API“实时”获取当前麦克风输入。缓冲区数据作为 16 位小端字节数组传送。我想做的是找出缓冲区中的最大峰值电平并将其转换为分贝值。为此,我必须将每两个字节数组值转换
关闭。这个问题不符合Stack Overflow guidelines .它目前不接受答案。 这个问题似乎与 help center 中定义的范围内的编程无关。 . 关闭 8 年前。 Improve
这个问题在这里已经有了答案: Difference between Big-O and Little-O Notation (5 个答案) 关闭 8 年前。 直观上,nb = o(an)(o 是小哦
我正在使用 file.readAsBytes()。但它只提供List来接收数据。我正在尝试 Uint8List 但没有用。 最佳答案 readAsBytes将为您提供字节列表。它可能是一个 Uint8
我想快速了解 F# 并且想知道“The Little ML'er”这本书是否会有所帮助,因为 F# 基于 OCaml,它是 ML 的衍生物。或者,ML 与 F# 的差别太大而没有任何帮助吗? 谢谢。
将小端系统中的数据转换为网络字节顺序所需的底层转换是什么?对于2字节和4字节数据,有众所周知的函数(如htons,ntohl等)来封装变化,1字节数据的字符串(如果有的话)会发生什么? 此外,维基百科
我很难理解 The Little Schemer 的 evens-only*&co 发生了什么事情第 145 页的示例。 这是代码: (define evens-only*&co (lambda (
在从SICP学习了一些Scheme之后,我开始阅读The Little Schemer(我觉得很有趣),并且完成了大约四分之一。我注意到,无需使用lambda即可编写许多(大多数?全部?)解决方案,而
我正在尝试了解计算机的实际工作原理,我找到了一些模拟器软件,但它们似乎非常复杂(我还是个初学者)。我看到了Little Man Computer (LMC)这是很旧的。恐怕软件的工作方式与现在完全不同
我正在尝试了解计算机的实际工作原理,我找到了一些模拟器软件,但它们似乎非常复杂(我还是个初学者)。我看到了Little Man Computer (LMC)这是很旧的。恐怕软件的工作方式与现在完全不同
我是一名优秀的程序员,十分优秀!