在使用命令尝试手动编辑时,我遇到了一个非常令人沮丧的错误:
git add -p
我已经查看了此网站上的许多现有问题,包括this one和this one。
我正试图手动编辑一个大块,不做任何修改到git打开的文件进行手动编辑,仍然收到错误"你编辑的大块头做了不适用"。
我认为这可能与CRLF与LF EOL角色有关。我在Notepad ++中编辑,我可以看到我的所有行结尾都是CRLF。我天真地尝试将所有线路结尾改为LF,但无济于事。
我还可以看到所有上下文行都有前导空格,所以这也不是问题所在。此外,我有:
git --global core.autocrlf
设置为true
。
非常感谢任何帮助。
编辑:根据VonC的回答,在我的具体情况下,我有一个权限+内容差异。这仍然意味着我做不到:
git add -p
如果它只是一个权限差异,我理解为什么这不是必要的,并且必须删除交互选项;但在这种情况下,有没有办法继续进行交互式add
?
答案 0 :(得分:1)
首先,将git --global core.autocrlf
设为false
然后再次克隆您的repo,并检查core.autocrlf
:
cd /path/to/new/clone
git config core.autocrlf
(no --global)
最后,再次尝试git add -p
(在新工作树中报告修改后)。
关于大块管理,另请参阅“Unexpected result in git-diff
”。
“您编辑的hunk不适用”。
diff --git a/<file-a> b/<file-b> >
index <short-hash-a>..<short-hash-b> 100644
--- a/<file-a>
+++ b/<file-b>
<changes>
如果没有更改(仅限于权限),在这种情况下添加“补丁”没有意义:您只需git add
该文件(无-p
)
但如果有变化,OP提到的问题“git add --interactive “Your edited hunk does not apply”
”仍然是参考。