编辑 git 补丁给出“您编辑的块不适用”
Posted
技术标签:
【中文标题】编辑 git 补丁给出“您编辑的块不适用”【英文标题】:editing git patch gives "Your edited hunk does not apply" 【发布时间】:2012-03-19 00:41:37 【问题描述】:我正在以交互方式添加文件:
git add ../../template/panels/panel-reports.php -p
diff --git a/template/panels/panel-reports.php b/template/panels/panel-reports.php
index 5482228..48d2901 100644
--- a/template/panels/panel-reports.php
+++ b/template/panels/panel-reports.php
@@ -214,6 +214,8 @@
<a class="addCategory"></a>
<a class="removeCategory"></a>
+ <a class="addDocument"></a>
+ <a class="checkTool"></a>
<div class="categoriesList"></div>
<div class="documentsList"></div>
Stage this hunk [y,n,q,a,d,/,e,?]? e
ps:这些是这里唯一修改的行
我要删除
+ <a class="checkTool"></a>
所以我这样编辑:
# Manual hunk edit mode -- see bottom for a quick guide
@@ -214,6 +214,7 @@
<a class="addCategory"></a>
<a class="removeCategory"></a>
+ <a class="addDocument"></a>
<div class="categoriesList"></div>
<div class="documentsList"></div>
# ---
# To remove '-' lines, make them ' ' lines (context).
# To remove '+' lines, delete them.
# Lines starting with # will be removed.
而 git 拒绝了它:
error: patch failed: template/panels/panel-reports.php:214
error: template/panels/panel-reports.php: patch does not apply
Your edited hunk does not apply. Edit again (saying "no" discards!) [y/n]?
在我看来,我写的内容没有任何错误或歧义,那么我错在哪里?
【问题讨论】:
确保每个上下文行都以前导空格字符 ' ' 开头,即使该行是空的。 浏览this question。 【参考方案1】:ydroneaud 的评论是我正在寻找的答案。
许多文本编辑器在保存时会删除尾随空格,请注意这一点。
第二件事,当删除“-”以保留一行时,实际上将其替换为空格“”,不要只是删除它。
最后,不要摆弄顶部@@@@中的数字。
【讨论】:
如果行数发生变化,您必须调整顶部@@ @@中的行号。 @NiklasR 从 Git 版本 2.11.0 开始,您不需要调整顶部 @@ @@ 中的行号,因为对未修改的行进行更改 必须 可以在实际代码中而不是在交互模式下手动编辑。 git交互模式会自行处理修改后的行调整。 我的关键字是replace。我刚刚删除了“-”字符(不是整行),然后补丁也没有应用。删除“-”并添加空格就可以了。 和johan persson一模一样,也不需要编辑header hunk numbers以上是关于编辑 git 补丁给出“您编辑的块不适用”的主要内容,如果未能解决你的问题,请参考以下文章