【发布时间】:2011-03-17 03:57:27
【问题描述】:
我正在尝试使用git add --interactive 有选择地向我的索引添加一些更改,但我不断收到“您编辑的大块不适用。再次编辑...”消息。即使我选择 e 选项,我也会收到此消息,并立即保存/关闭我的编辑器。换句话说,根本不编辑大块,补丁不适用。
这是我正在使用的确切示例(我正在尝试组合一个小演示):
原始文件:
first change
second change off branch
third change off branch
second change
third change
fourth change
新文件:
Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
bug fix 1
change supporting feature 1
我试图展示如何使用git add --interactive 仅将“bug fix 1”行添加到索引中。在文件上运行交互式添加,我选择补丁模式。它向我展示了
diff --git a/newfile b/newfile
index 6d501a3..8b81ae9 100644
--- a/newfile
+++ b/newfile
@@ -1,6 +1,9 @@
+Change supporting feature 1
first change
second change off branch
third change off branch
second change
third change
fourth change
+bug fix 1
+change supporting feature 1
我用 split 回应,然后用“no”应用第一个大块。第二个大块头,我尝试编辑。我最初尝试删除底线 - 那没有用。完全不理会大块头也不行,我不知道为什么。
【问题讨论】:
-
这里要确保的一件好事是,您没有在文件中不存在的行的开头添加
-;这是一个差异,它不能删除不存在的行。因此,如果 diff 中的一行以+开头,而您将其更改为-,那么 git 会 WTF 吗?因为现在标记为删除的行一开始就不存在(而是该行被标记为添加,并且当标记为添加的行被标记为删除时,git无法删除文件中尚不存在的行) . -
还要检查行尾(LF,CRLF)在我的情况下它没有申请一个LF而不是CRLF!
标签: interactive patch git-add