Перейти к основному содержимому

Как закоммитить только часть файла?

·203 слов·1 минута
Git Гайды
Юрий Семеньков
Автор
Юрий Семеньков
DevOps, tech, geek, mentor
Оглавление

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.

Related

Увеличение разделов в Linux на горячую
·1141 слово·6 минут
Linux Гайды
Как создать свой блог на Hugo
·1781 слово·9 минут
Гайды
Бест-практисы Ansible
·1052 слов·5 минут
Гайды