Страницы

Поиск по вопросам

вторник, 10 декабря 2019 г.

Количество, частота и содержание коммитов

#контроль_версий


Заметил, что количество моих коммитов сильно превышает количество коммитов других
людей в схожих проектах (на один не самый сложный проект на свете ушло больше 300).
Это, конечно, не является моей основной проблемой в жизни, но у меня сложилось впечатление,
что я делаю что-то не так, и это может затруднить копание в истории проекта.
Я делаю коммит каждый раз, когда в проект добавляется новая фича, и он после этого
приходит в работоспособное состояние, причем неважно, какого размера фича - простое
выправление грамматики, багфикс, внедрение какого-то нового функционала (последнее
может быть разбито и на несколько коммитов, но после каждого из них проект должен быть
работоспособным), причем если я поправил css, сменил отвратительно кривой текст на
просто кривой и пересобрал в контроллере экшен - это, по моей философии, должны быть
три коммита, потому что они затрагивают разные невзаимосвязанные части проекта. В результате,
с одной стороны, я могу получить чуть ли не любой слепок проекта и он в любой момент
будет работоспособен, с другой - я получаю ворох коммитов типа 'Typo fix', 'CSS fix',
'Microfix', которые, наверное, могли бы и не существовать.
Короче, как правильно делать?
p.s. Одна из вероятных причин ситуации - то, что бранчингом почти не пользуюсь. Сам
дурак, знаю.
upd. Если точнее сформулировать вопрос - должны ли вводимые фичи быть атомарными
(один коммит - одна фича или багфикс), или на это можно наплевать?    


Ответы

Ответ 1



По коммитам у меня такие правила: Коммит должен компилироваться без ошибок. Коммит должен обозначать как минимум новую фичу/класс/метод/багфикс. Или хотя бы коммит должен обозначать конец рабочего дня. Коммит не должен задерживать остальных членов команды, ибо merge - это зло (иногда необходимое). Из чего следует, что если я занимаюсь прожектом, то как минимум 1 коммит в день я должен делать. Терпеть не могу коммиты, когда изменения копятся-копятся, потом бабах - глобальный коммит с тучей конфликтов merge. С другой стороны, больше 2-3 коммитов в день - это излишне, ну разве что по просьбе сотоварищей. Update для фанатов git: в данном контексте коммит имеется ввиду не коммит в локальную репу, а гитовский push в глобальную репу.

Ответ 2



Вы все делаете правильно :) И переходите уже, наконец, на git :] Хотите новую фичу - делаете ветку, в которой реализовываете фичу, потом мержите ее в дев, тестите, и далее по списку... Не нужно себя ограничивать в количестве коммитов. Просто у вас будет более детальная история в случае чего :)

Комментариев нет:

Отправить комментарий