Избавляемся от мусорных коммитов с Git
Как не потерять временные наработки и при этом поддерживать историю коммитов в красивой форме? В этом вам поможет усвоение несложной информации и немного практики.
Ранее я рассказывал, как сохранять временные наработки в стеке. Данный способ позволяет достичь нашей цели, однако создает опасность забыть применить эти изменения в нужный момент. Поэтому существует еще один вариант.
Он заключается в модификации предыдущего коммита путем добавления к нему новых изменений. Создадим файл commit_amend.py, содержащий одну строку и зафиксируем изменения с именем 'temp1', а затем проделаем аналогичные действия еще раз:
Если добавить еще строку и вместо фиксации набрать последовательность команд:
git add commit_amend.py git commit --amend
то будет предложено изменить сообщение фиксации и перезаписать последний коммит, добавив к уже имеющимся в нем изменениям еще и новые:
Следует отметить, что в операционной системе Linux задать сообщение фиксации вам будет предложено в редакторе vi. Так как он крайне не удобен, советую запомнить следующее:
- переход в режим ввода из командного осуществляется посредством ввода i (от слова insert);
- сохранение сообщения фиксации после правки и выход из редактора (ESC) осуществляется командами wq.
Еще проще сделать то же сразу:
git commit --amend -m new_message
Открыв историю изменений файла, отмечаем, что коммит 'temp2' был перезаписан новым ('temp3'):
Если сравнить содержание файла commit_amend.py в двух последних коммитах, то можно убедиться, что для системы обе последние строки сохранены одновременно: