我有一个Java文件,其结尾如下:
}
}一段时间前,我错误地删除了换行符,但是直到今天,当我从Git-GUI中得到一条错误消息时,它还不错。
fatal: corrupt patch at line 36我尝试添加缺失的换行符,但Git似乎无法正确处理它:
在添加换行符之前:
}
}
\ No newline at end of file在添加换行符后:
}
-}
\ No newline at end of file
+}它仍然给了我这个错误。
我试着恢复更改,只添加换行符,而不对文件进行其他更改,但也没有帮助。
编辑:添加两个甚至三个换行符的也没有帮助。
EDIT2:此错误仅在最后一个块内的行执行时发生。
发布于 2013-08-09 10:04:54
好吧,很抱歉没有彻底检查一下。
我试着像我通常做的那样添加和执行,但是没有Git-GUI,使用命令行,它起了作用。
因此,我建议所有有Git-GUI问题的人不要像我做的那样,在发布之前通过命令行检查它。
发布于 2015-08-01 11:52:55
当你编辑“-”行时,就会发生这种情况。
当您删除'-‘并忘记添加’(空格)而不是‘时,
打开修补程序,检查所有想要保持不变的行都是以“”(空格)开头的。
更新
您的编辑器也可能有这样的选项:“删除行尾的空格”。所以,当您在编辑器中保存修补程序时:
-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您的编辑器将删除尾随空间,修补程序将如下所示:
-Line with space at end<--- Here no space. Patch will FAIL!!!
+Line with no space at end<--- Here no space also此修补程序将失败,因为原始文件没有行:
-Line with space at end<---相反,它有:
-Line with space at end <--- UPD
有时,您希望删除-行。您可以使用被裁剪的空白来更改它。因此,这是不起作用的(这里只是作为第一个字符的wihitespace ):
要解决这个问题,只需在其后面添加+行:
-
+此修补程序将删除空行并再次添加它。
发布于 2019-03-05 20:04:10
另一个潜在的问题,尤其是在使用常规文本编辑器进行编辑时,是无法处理块开头的数字,即旧代码中有多少行,新代码中有多少行,以及每段代码从哪里开始。如果数字不匹配,则会得到fatal: corrupt patch at line x错误。
例如,@@ -32,9 +54,15 @@告诉它在第32行和原始文件中接下来的9行中找到要替换的代码,但是在编辑的文件中,从第54行开始有15行代码。如果您添加或删除任何行,您也必须编辑这些数字。
虽然我还没有对它做过任何真正的研究,也没有使用过git gui,但是可以想象,由于没有以新行结尾的行在技术上不符合某些标准,所以您需要将其中的一个或两个数字按一个修改才能正确地应用。
https://stackoverflow.com/questions/18142870
复制相似问题