TL;DR; #
git add -p
Чуть подробнее #
Команда git add -p
(или --patch
) проходит по всем файлам и спрашивает по каждому изменению, что ты хочешь с ним сделать:
❯ git add -p
diff --git a/ansible/file.yml b/ansible/file.yml
index 73f6b4d..899610f 100644
--- a/ansible/file.yml
+++ b/ansible/file.yml
@@ -52,7 +52,8 @@
loop:
- - "service"
+ - "node_modules"
+ - "systemd_templates"
(1/1) Stage this hunk [y,n,q,a,d,e,?]?
А дальше интерактивный ввод. Ну, самое важное — это “y
” и “n
" — добавить эти изменения в индекс или пропустить. Есть варианты с пропустить или добавить “до конца файла”. Можно использовать как git add -p filename
.
Напомню, индекс в git — это список файлов, которые будут закоммичены.
Важно, это действие добавляет наше изменение только в индекс. Его еще нужно закоммитить.
Как еще можно использовать? #
Как писал вот здесь, я всегда пользовался либо git add .
, либо git add <filename>
. Но тут есть загвоздка:
при git add .
в индекс, а затем и в коммит, могут попасть лишние файлы про редактирование которых ты мог и забыть уже
Вот git add -p
позволит более осознанно (преисполненно) пройтись по файлам перед тем как добавить их в индекс.
Так же напомню, что для удаления файла из индекса можно воспользоваться командой git reset filename
.