使用git add -i编辑diff时出现corrupt patch报错的解决求助
解决Git
error: corrupt patch at line 13 问题 核心原因
你碰到的报错是因为手动编辑后的patch不符合Git的严格格式规范,结合Win10+Notepad++的环境,主要是这几个细节没做到位:
具体修复步骤
1. 修正patch头部的行号标记
你编辑后的patch头部还是@@ -520,7 +520,7 @@,但实际修改后代码行数已经变化:原patch是替换1行(注释行换成非注释行),现在你要保留注释行、删除新增行,相当于减少了1行,所以正确的头部应该是@@ -520,7 +520,6 @@——+后面的数字要对应修改后的总行数。
2. 处理Windows换行符冲突
Notepad++默认用CRLF(Windows换行),但Git要求patch用LF(Unix换行),这会导致格式识别错误:
- 打开编辑的patch文件后,点击Notepad++顶部菜单「编辑」→「文档格式」→「UNIX (LF)」
- 保存后再让Git应用patch
3. 严格匹配代码格式
编辑后的patch里:
- 要保留的
#client.hide(True)行不能带任何前缀(既不要-也不要+),且缩进、内容必须和原文件完全一致 - 不要添加或删除原文件中存在的空行,保持和原代码的空行结构一致
4. 更省心的替代方案
如果手动编辑patch容易出错,直接用更简单的命令:
- 放弃该文件所有修改:
git checkout -- path/to/your/file.py - 只恢复特定修改:先执行
git reset HEAD path/to/your/file.py取消暂存,再用git add -p交互式暂存,遇到该修改块时选n跳过,或选e编辑时严格遵循正确格式
正确的编辑后patch示例
@@ -520,7 +520,6 @@ class AreaManager: self.broadcast_ooc( f"[{client.id}] {client.showname} ({client.name}) is GM in this hub now." ) #client.hide(True) def remove_owner(self, client): """
内容的提问来源于stack exchange,提问作者user27575278
相关产品推荐
相关产品推荐

