установить сообщение коммита для будущего коммита git - PullRequest
0 голосов
/ 18 февраля 2019

Есть ли способ задать комментарий для следующего будущего коммита с помощью git?Представьте себе что-то вроде этого:

git next-commit "Implement client-side validation"

# implement the feature ...

# commit changes
# equivalent to git commit -m "Implement client-side validation"
git commit -m from-next-commit

Мотивация этого заключается в том, что я часто имею в виду определенную особенность, когда я программирую, но по пути я заканчиваю разработкой некоторых других функций или исправлением связанных вещей иЯ теряю основную задачу, над которой я работал.

В этот момент я изменил исходный код полезными изменениями, но я даже не помню, какая основная функция была добавлена, поскольку все это простокуча изменений и единственное сообщение о коммите, о котором я могу подумать, это git commit -m "Update stuff".Установка сообщения для следующего коммита также может помочь мне продолжить работу над тем, что я должен был сделать.В любой момент, если я чувствую, что я забыл основную задачу и переключился на другую функцию, я в идеале попросил бы git что-то вроде git next-commit, которое могло бы напечатать Implement client-side validation.

это существует?

РЕДАКТИРОВАТЬ: после просмотра некоторых ответов, я думаю, я должен уточнить еще одну вещь.В идеале эта команда также поможет вам отслеживать, когда будущий коммит уже был использован.Например, если вы дважды используете git commit -m from next-commit без установки нового сообщения о коммите в будущем, оно должно завершиться неудачей.

$ git next-commit "Implement client-side validation"
ok
$ git commit -m from-next-commit
ok
# git commit -m from-next-commit
error : already used
$ git next-commit "Optimize get_request"
ok
$ git commit -m from-next-commit
ok

Ответы [ 4 ]

0 голосов
/ 18 февраля 2019

Лично я бы сделал то, что предложил Тим Бигелайзен , но было бы очень сложно сделать то, что вы хотите, если вы хотите использовать пользовательскую команду вместо git commit.

То есть вы можете создать собственный git-next-commit сценарий, поместить его в PATH и записать желаемое сообщение о коммите в какой-нибудь файл в корне вашего git-репо (или, может быть, в .git/).

Затем создайте другой пользовательский сценарий (например, git-commit-from-next или просто повторно используйте git-next-commit, возможно, с параметром командной строки), который вызывает git commit с ранее сохраненным сообщением и удаляет файл.Если файл не существует, выведите соответствующее сообщение об ошибке.

Вы также можете получить git prepare-commit-msg hook , чтобы делать то, что вы хотите, если он видитспециальное сообщение "from-next-commit".

0 голосов
/ 18 февраля 2019

Честно говоря, если у вас так много проблем с запоминанием того, что вы делали в текущем коммите, я могу задаться вопросом, будете ли вы в хорошем состоянии проверять весь код перед выполнением этого коммита.Возможно, вам следует инвестировать в систему отслеживания проблем, такую ​​как Джира.

При этом, один из трюков, который вам здесь может пригодиться, состоит в том, чтобы начать с фиктивного коммита, где вы просто вносите небольшие изменения где-то.Добавьте «будущее» сообщение о коммите, которое вы имеете в виду:

git commit -m 'Implement client-side validation'

Затем выполните свою работу и завершите коммит.Когда приходит время для фиксации этой работы, вы можете изменить предыдущий коммит:

git commit --amend

По умолчанию это должно вызвать окно редактора, в котором вы должны увидеть ваше сообщение о коммите в будущем.уже там.

0 голосов
/ 18 февраля 2019

Я бы порекомендовал вырезать ветку, имея в виду «описание» (например, git checkout -b "mz-client-side-validation". Запомните коммит, с которого вы начали эту ветку (используйте тег, скажем mz-csv, если вам нужно) изатем начинайте свою работу. Поначалу не имеет значения, если вы не сфокусированы на характере своей работы. То, к чему вы должны привыкнуть, - это делать небольшие коммиты (даже с плохими сообщениями).всегда связанные с проверкой на стороне клиента, они достаточно малы, чтобы быть полезными в истории.

Как только вы закончите реализацию своей реальной функции (возможно, с помощью нескольких коммитов), выполните git rebase -i mz-csv. ТеперьВы можете очистить историю работы на mz-client-side-validation. Разрезать коммиты, объединить их, отбросить их и т. д., и когда вы будете готовы, объедините mz-client-side-validation обратно в основную ветку.

0 голосов
/ 18 февраля 2019

Возможно использовать git commit -F <file> для чтения комментария из файла?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...