我有一个Java文件,结尾如下:
}
}
Run Code Online (Sandbox Code Playgroud)
我前段时间错误地删除了换行符,但直到今天我收到Git-GUI的错误消息时才很好
fatal: corrupt patch at line 36
Run Code Online (Sandbox Code Playgroud)
我尝试添加缺少的换行符,但Git似乎无法正确处理它:
在添加换行符之前:
}
}
\ No newline at end of file
Run Code Online (Sandbox Code Playgroud)
添加换行符后:
}
-}
\ No newline at end of file
+}
Run Code Online (Sandbox Code Playgroud)
它仍然给我这个错误.
我尝试恢复更改并仅添加换行而不对文件进行其他更改,但它也没有帮助.
编辑:添加两个甚至三个换行也没有用.
EDIT2:仅当在最后一个块中提交行时才会发生此错误.
Eug*_*kov 14
编辑' - '行时会发生这种情况.
当你删除' - '并忘记添加''(空格)而不是它
打开你的补丁并检查你想要保持不变的所有行都以''(空格)开头
UPDATE
您的编辑器也可以选择:"删除行尾的空格".因此,当您在编辑器中保存补丁时:
-Line with space at end <--- NOTICE: Here there is one space at the end
+Line with no space at end<--- Here there's no space
Run Code Online (Sandbox Code Playgroud)
您的编辑器将删除尾随空格和补丁变为如下所示:
-Line with space at end<--- Here no space. Patch will FAIL!!!
+Line with no space at end<--- Here no space also
Run Code Online (Sandbox Code Playgroud)
此补丁将失败,因为源文件没有行:
-Line with space at end<---
Run Code Online (Sandbox Code Playgroud)
相反,它有:
-Line with space at end <---
Run Code Online (Sandbox Code Playgroud)
小智 6
另一个潜在的问题,特别是在使用常规文本编辑器进行编辑时,无法处理大块开头的数字,这些数字表示旧代码中有多少行,新代码中有多少行,以及在哪里它从每个开始。如果数字不匹配,则会出现错误fatal: corrupt patch at line x
。
例如,@@ -32,9 +54,15 @@
告诉它在原始文件中的第 32 行和接下来的 9 行中查找要替换的代码,但在编辑后的文件中从第 54 行开始有 15 行。如果添加或删除任何行,您将我也必须编辑这些数字。
虽然我没有对此做过任何真正的研究,也没有使用过 git gui,但可以想象,由于不以换行符结尾的行在技术上不是根据某些标准的行,因此您需要更改以下一项或两项将这些数字加一以使其正确应用。