котором изменения в разных местах?
К примеру, есть файл в котором в одном месте поправили багу, в другом месте переименовали переменную, в третьем месте упростили код функции, в четвертом еще что-то.
Не уверен, но кажется это надо использовать`https://git-scm.com/docs/git-add#Documentation/git-add.txt--p` или все-таки это: https://git-scm.com/book/ru/v2/%D0%98%D0%BD%D1%81%D1%82%D1%80%D1%83%D0%BC%D0%B5%D0%BD%D1%82%D1%8B-Git-%D0%98%D0%BD%D1%82%D0%B5%D1%80%D0%B0%D0%BA%D1%82%D0%B8%D0%B2%D0%BD%D0%BE%D0%B5-%D0%B8%D0%BD%D0%B4%D0%B5%D0%BA%D1%81%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5 пойду читать...
Оооооооооооо, это git add -p
Да я частенько не создаю ветки, когда эксперементирую. Просто пишу код, по той причине, что сразу что-то хорошее не всегда получается. А вот со второго раза заходит. Но иногда в первой попытке получается что-то хорошее и хочется сохранить
Мой рабочий процесс — делаю фичу, а потом если понимаю, что могу выделить какой-то кусок в изолированный атомарный коммит — изолирую его с git add -p (иногда даже с редактированием чанка, если например переименование и фикс бага в одной строке, а я хочу их разделить) и коммичу.
Но этот patch-режим отрабатывает не так, как я ожидаю. Два куска кода с изменениями могут стоять близко друг к другу. Но один к примеру фиксит баг, а другое переименование метода. Но этот будет показываться строго в одном hunk-е
Кнопка S позволяет разделить их если они не на соседних строчках конечно
Мой рабочий процесс - делаю миллион мелких коммитов на локальной ветке, тоже с git add -p Кстати ещё есть git reset -p и git restore -p
Круто!! Спасибо!
Осталось понять что значат reset -p и restore -p. Пойду гихбук мучать
Часто срабатывает нажатие s (split), которое разделяет кусок на более мелкие.
Раскусили. Регулярно отменяю правки с помощью git checkout -p (он же restore), и реже ресетом -р.
Обсуждают сегодня