Shell
$ seq 1 9 > file1
$ seq 1 9 > file2 # теперь файлы содержат по девять строчек с цифрами.
$ git add file* # добавляю в index...
$ git commit -m chunks.before # и коммичу эти файлы
[master 517e34e] chunks.before
2 files changed, 18 insertions(+), 0 deletions(-)
create mode 100644 file1
create mode 100644 file2
$ sed -i 's/1/a/' file* # вношу правки 1.1 и 1.2, заменяя цифру 1 на букву a.
$ sed -i 's/9/b/' file* # вношу правки 2.1 и 2.2, заменяя цифру 9 на букву b.
$ git diff # вот так выглядят изменения
diff --git a/file1 b/file1
index 0719398..edf2b27 100644
--- a/file1
+++ b/file1
@@ -1,4 +1,4 @@
-1
+a
2
3
4
@@ -6,4 +6,4 @@
6
7
8
-9
+b
diff --git a/file2 b/file2
index 0719398..edf2b27 100644
--- a/file2
+++ b/file2
@@ -1,4 +1,4 @@
-1
+a
2
3
4
@@ -6,4 +6,4 @@
6
7
8
-9
+b
$ git add -p file* # вызываю add с магическим ключиком -p
diff --git a/file1 b/file1
index 0719398..edf2b27 100644
--- a/file1
+++ b/file1
@@ -1,4 +1,4 @@
-1
+a
2
3
4
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? y # подтверждаю этот chunk (или правильнее hunk?)
@@ -6,4 +6,4 @@
6
7
8
-9
+b
Stage this hunk [y,n,q,a,d,/,K,g,e,?]? n # а этот откладываю
diff --git a/file2 b/file2
index 0719398..edf2b27 100644
--- a/file2
+++ b/file2
@@ -1,4 +1,4 @@
-1
+a
2
3
4
Stage this hunk [y,n,q,a,d,/,j,J,g,e,?]? y # подтверждаю
@@ -6,4 +6,4 @@
6
7
8
-9
+b
Stage this hunk [y,n,q,a,d,/,K,g,e,?]? n # откладываю
$ git diff # отличия от index-а — только правки 2.*
diff --git a/file1 b/file1
index 7d9feef..edf2b27 100644
--- a/file1
+++ b/file1
@@ -6,4 +6,4 @@ a
6
7
8
-9
+b
diff --git a/file2 b/file2
index 7d9feef..edf2b27 100644
--- a/file2
+++ b/file2
@@ -6,4 +6,4 @@ a
6
7
8
-9
+b
$ git diff HEAD # отличия от «головы» репозитория — всё те же четыре изменения
diff --git a/file1 b/file1
index 0719398..edf2b27 100644
--- a/file1
+++ b/file1
@@ -1,4 +1,4 @@
-1
+a
2
3
4
@@ -6,4 +6,4 @@
6
7
8
-9
+b
diff --git a/file2 b/file2
index 0719398..edf2b27 100644
--- a/file2
+++ b/file2
@@ -1,4 +1,4 @@
-1
+a
2
3
4
@@ -6,4 +6,4 @@
6
7
8
-9
+b
$ # и теперь я могу спокойно выполнить commit и будут в него внесены
$ # лишь правки 1.* (замена цифры 1 на букву a)
$ git commit -m "1 -> a"
[master 037c1dd] 1 -> a
2 files changed, 2 insertions(+), 2 deletions(-)
$ # а с буквами b я разберусь на следующем шаге:
$ git commit -am "2 -> b"
[master 81c437f] 2 -> b
2 files changed, 2 insertions(+), 2 deletions(-)