Моя история коммитов для моего проекта github представляет собой большой беспорядок, потому что я делаю так много разных изменений (особенно с комментариями), что трудно увидеть, что было изменено. Недавно у меня появилась идея вынести стилизацию, комментирование и рефакторинг в отдельные ветки, но я не уверен, что система ветвления предназначена для этого? Я все еще изучаю git, но, насколько я понимаю, ветвление в основном используется для работы над новой функцией. Итак, мой вопрос: практична ли моя идея, и если да, то как она будет реализована?
В качестве альтернативы я полагаю просто сделать кучу очень маленьких коммитов рефакторинга, комментировать изменения и т. д. Но это также не кажется отличным решением, потому что тогда у меня будет тонна коммитов в 1 и 2 строки.
Если упомянутые вами части (CSS, комментарии...) полностью независимы, рассмотрите возможность запуска отдельного проекта git для каждой из них. Если они не независимы (что, вероятно, так и есть), вероятно, это не очень хорошая идея. Использование четких сообщений фиксации может помочь. Например, вы можете добавить слово ко всем своим сообщениям о коммите, чтобы дать какой-то контекст (что-то вроде «css: изменить цвет фона» или «рефакторинг: обновленный верхний и нижний колонтитулы»).
Только ветвление не решит вашу проблему. Допустим, вы создали выделенную ветку для изменений CSS и сделали в ней 10 небольших коммитов. Как только ветка будет объединена с мастером, у мастера также будут эти 10 коммитов.
Ветвление, безусловно, поможет вам разделить вашу работу по рефакторингу. Что вы можете сделать в дополнение к ветвлению, так это раздавить ваши коммиты, прежде чем они будут объединены с мастером. С помощью сжатия вы можете превратить свои 10 коммитов в один коммит и назвать его изменениями CSS. И затем вы можете объединить эту единственную фиксацию с мастером.
Вы можете делать сквош с помощью интерактивная перебазировка.
Обратите внимание: Rebase — это операция, которая изменяет историю. Так что никогда не пытайтесь делать это с общими коммитами, если вы не знаете, что делаете. Rebase абсолютно безопасен, если у вас есть локальные коммиты, которые не были отправлены на удаленный сервер, и вы хотите играть [сквош, удаление, изменение порядка и т. д.] вокруг них.
"очень маленькие коммиты рефакторинга, комментирование изменений" <--- ЭТО. Иметь много "атомарных" коммитов - это хорошо, IMO, потому что это позволяет вам легко отменить изменения позже, если это необходимо.