u16suzuの blog

日々学んだことのメモブログです。

git add -p で編集(e)を選択した場合のやり方

@@ -3,7 +3,6 @@の見方とその編集方法がわかったのでメモ。
ちなみに、ハンクとは、コミット時の変更点のかたまりのことを指す。
1個のコミットには複数のハンクが含まれる。

見方
@@ -3,7 +3,6 @@

@@-コミット前開始点、コミット前ハンクサイズ +コミット後開始点、コミット後ハンクサイズ@@

git add -p e でハンクを編集した場合、コミット後ハンクサイズも編集する必要がある。

編集例
# Manual hunk edit mode -- see bottom for a quick guide
@@ -1,9 +1,11 @@
 1
 2
+0
 3
 4
 5
 6
+0
 7
 8
 9
# 

上のハンク例で、2番目の0だけを消したい場合は, 2番目の+0 の行を削除後、ハンクサイズも 11 -> 10と修正する必要がある。こんな感じ↓

# Manual hunk edit mode -- see bottom for a quick guide
@@ -1,9 +1,10 @@
 1
 2
+0
 3
 4
 5
 6
 7
 8
 9
# 
追記

javaeclipse で書いていると、変更していない行なのに変更点として git に認識されてしまう。
この余分な変更点が以下の3, 4 ように 上下で隣り合っている場合 s で split できない。

# g a -p                                                                                                                                                                                  
diff --git a/e b/e
index b2f931a..66bcfd9 100644
--- a/e
+++ b/e
@@ -1,5 +1,5 @@
 one
 two
-three
-four
+3
+4
 five

なので、次のようにもし4が要らない変更だとしたら +4 と -を消してあげる必要がある。

  1 # Manual hunk edit mode -- see bottom for a quick guide
  2 @@ -1,5 +1,5 @@
  3  one
  4  two
  5 -three
  6 +3
  7  four
  8  five

結果は以下のとおり

# g diff --cached
diff --git a/e b/e
index b2f931a..5135309 100644
--- a/e
+++ b/e
@@ -1,5 +1,5 @@
 one
 two
-three
+3
 four
 five