1. ホーム
  2. interactive

[解決済み] git add --interactive "Your edited hunk does not apply".

2023-02-24 21:40:57

質問

私は 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"で応答します。 2つ目の塊は、私が編集しようとしたものです。 もともと、一番下の行を削除しようとしましたが、うまくいきませんでした。 ハンクを完全に残しておくこともうまくいきませんし、その理由もわかりません。

どのように解決するのですか?

この特定の例では、ハンクの行番号を微調整する必要があります。 行を変更します。

@@ -1,6 +2,8 @@

というように、代わりに読みます。

@@ -2,7 +2,8 @@