Однажды я прочитал, что сообщения git commit должны быть в настоящем времени, например, «Добавить тесты для x». Я всегда использую прошедшее время, например «Добавленные тесты для x», что кажется мне более естественным.
Вот недавний коммит Джона Резига, показывающий два в одном сообщении:
Настроить еще несколько результатов набора jQuery в тестах манипуляции. Также исправлен порядок ожидаемых результатов испытаний.
Это имеет значение? Какой я должен использовать?
git
git-commit
conventions
commit-message
Skilldrick
источник
источник
Ответы:
Предпочтение для сообщений о фиксации настоящего времени в императивном стиле исходит от самого Git. Из Документации / SubmittingPatches в репозитории Git:
Таким образом, вы увидите много сообщений Git commit, написанных в этом стиле. Если вы работаете в команде или над программным обеспечением с открытым исходным кодом, будет полезно, если все будут придерживаться этого стиля для согласованности. Даже если вы работаете над частным проектом, и вы единственный, кто когда-либо будет видеть вашу историю git, полезно использовать императивное настроение, потому что оно формирует хорошие привычки, которые будут цениться, когда вы работаете с другими.
источник
rebase
или,cherry-pick
и в этом случае, коммит может быть использован вне его первоначального контекста. В результате сообщение о фиксации должно быть написано автономно, не ожидая, что читатель увидит какие-либо окружающие сообщения фиксации. Когда вы выбираете патчи для вишни, имеет смысл применить «Исправить алгоритм быстрой сортировки» или «Сортировка: повысить производительность» вместо «Исправленная ошибка № 124» или «Измененная сортировка для повышения производительности».Ваш проект должен почти всегда использовать прошедшее время . В любом случае, проект должен всегда использовать одно и то же время для последовательности и ясности.
Я понимаю некоторые другие аргументы в пользу использования настоящего времени, но они обычно не применяются. Следующие пункты являются общими аргументами для написания настоящего времени и моего ответа.
Это самая правильная причина, по которой можно использовать настоящее время, но только с правильным стилем проекта. При таком способе мышления все коммиты рассматриваются как необязательные улучшения или функции, и вы можете сами выбирать, какие коммиты сохранять, а какие отклонять в вашем конкретном репозитории.
Этот аргумент работает, если вы имеете дело с действительно распределенным проектом. Если вы имеете дело с распределенным проектом, вы, вероятно, работаете над проектом с открытым исходным кодом. И это, вероятно, очень большой проект, если он действительно распространяется. На самом деле, это, вероятно, ядро Linux или Git. Поскольку Linux, вероятно, стал причиной распространения и роста популярности Git, легко понять, почему люди считают его стиль авторитетом. Да, стиль имеет смысл с этими двумя проектами. Или вообще работает с большими, с открытым исходным кодом, распределенными проектами.
При этом большинство проектов в системе контроля версий не работают так. Обычно это неверно для большинства репозиториев. Это современный подход к коммитам: репозитории Subversion (SVN) и CVS едва ли поддерживают этот стиль регистрации репозитория. Обычно ветвь интеграции обрабатывает фильтрацию неудачных заездов, но обычно они не считаются «необязательными» или «полезными функциями».
В большинстве сценариев, когда вы делаете коммиты в исходном репозитории, вы пишете запись в журнале, которая описывает, что изменилось с этим обновлением, чтобы другим было проще в будущем понять, почему было сделано изменение. Как правило, это необязательное изменение - другие люди в проекте должны либо слить, либо перебазировать его. Вы не пишете запись в дневнике , такие как «Дорогой дневник, сегодня я встретиться с мальчиком , и он говорит мне привет.», Но вместо того, чтобы писать «Я встретил мальчика , и он сказал мне привет.»
Наконец, для таких нераспределенных проектов 99,99% времени, когда человек будет читать сообщение коммита, предназначено для чтения истории - история читается в прошедшем времени. В 0,01% случаев будет решаться, следует ли им применять этот коммит или интегрировать его в свой филиал / репозиторий.
Нет, я гарантирую вам, что большинство проектов, когда-либо зарегистрированных в системе управления версиями, имели свою историю в прошедшем времени (у меня нет ссылок, но это, вероятно, правильно, учитывая, что аргумент настоящего времени является новым со времен Git). Сообщения «ревизии» или сообщения о фиксации в настоящем времени стали понятны только в действительно распределенных проектах - см. Первый пункт выше.
Смотрите первый пункт. 99,99% времени, когда человек будет читать сообщение коммита, предназначено для чтения истории - история читается в прошедшем времени. В 0,01% случаев будет решаться, следует ли им применять этот коммит или интегрировать его в свой филиал / репозиторий. 99,99% бьет 0,01%.
Я никогда не видел хороший аргумент, который говорит использовать неправильное время / грамматику, потому что это короче. Вы, вероятно, в среднем сохраните только 3 символа для стандартного 50-символьного сообщения. При этом нынешнее время в среднем, вероятно, будет на несколько символов короче.
Билеты пишутся либо как что-то, что происходит в данный момент (например, приложение показывает неправильное поведение при нажатии этой кнопки), либо как что-то, что необходимо сделать в будущем (например, текст будет нуждаться в редакторе).
История (т.е. сообщения коммита) записывается как то, что было сделано в прошлом (например, проблема была исправлена).
источник
Я написал более полное описание на 365git .
источник
Придерживайтесь императива настоящего времени, потому что
источник
Для кого вы пишете сообщение? И этот читатель обычно читает сообщение до или после владения самим коммитом?
Я думаю, что здесь были даны хорошие ответы с обеих точек зрения, возможно, я просто не смогу предположить, что есть лучший ответ для каждого проекта. Разделенное голосование может предложить то же самое.
т.е. подвести итог:
Является ли сообщение преимущественно для других людей, обычно читающих в какой-то момент до того, как они предполагают изменение: предложение того, что принятие изменения сделает с существующим кодом.
Является ли сообщение преимущественно журналом / записью для вас (или для вашей команды), но обычно читается с точки зрения принятия изменений и поиска, чтобы узнать, что произошло.
Возможно, это приведет к мотивации вашей команды / проекта, в любом случае.
источник
это имеет значение? люди обычно достаточно умны, чтобы правильно интерпретировать сообщения, если нет, вам, вероятно, не следует разрешать им доступ к вашему хранилищу в любом случае!
источник
Это тебе решать. Просто используйте сообщение о коммите, как хотите. Но это проще, если вы не переключаетесь между временем и языками.
И если вы развиваетесь в команде - это следует обсудить и установить исправлено.
источник