#
как комментарий не является правилом сообщений Git commit. Вместо этого это правило для записи сообщений фиксации через редактор.
AFAIK это позволяет Git показывать инструкции и другую информацию автору сообщения.
# Please enter the commit message for your changes. Lines starting
# with '#' will be ignored, and an empty message aborts the commit.
# On branch master
# Changes to be committed:
# new file: what
#
Это сохраняется как .git/COMMIT_EDITMSG
. Когда ваш редактор закрывается, Git читает этот файл, удаляет комментарии (и другие специальные вещи) и использует то, что осталось в качестве сообщения фиксации.
Из ГИТ-совершить документы ...
$ GIT_DIR/COMMIT_EDITMSG
Этот файл содержит сообщение фиксации коммита в процессе. Если git фиксирует выходы из-за ошибки перед созданием фиксации, любое сообщение фиксации, предоставленное пользователем (например, в сеансе редактора), будет доступно в этом файле, но будет перезаписано следующим вызовом git commit.
Вы можете, btw, прервать фиксацию, не предоставив без каких-либо строк.
Если вы используете git commit -m
, например, нет необходимости в этом, и сообщение, начинающееся с #
, в порядке.
$ git ci -m '# message with a comment'
[master 7c6a630] # message with a comment
1 file changed, 0 insertions(+), 0 deletions(-)
create mode 100644 that
$ git log
commit 7c6a630a9c84fda585601edef0b18e7a8683dffa (HEAD -> master)
Author: Michael G. Schwern <[email protected]>
Date: Wed Feb 22 20:51:36 2017 -0800
# message with a comment
$ cat .git/COMMIT_EDITMSG
# message with a comment
git commit
has an option to control this behavior, --cleanup
. Существуют различные режимы, которые разделяют комментарии, очищают пробелы или ничего не делают. Значение по умолчанию: «То же, что и для полосы, если сообщение должно быть отредактировано. В противном случае пробел.« Это можно контролировать с помощью переменной конфигурации commit.cleanup
.
Вы можете, если вы действительно хотите использовать a commit-msg
hook, чтобы убедиться, что комментарии всегда удаляются.
Из любопытства, зачем вам нужно игнорировать строку в сообщении о совершении? – jbu
@jbu git merge или git rebase генерируют сообщение автоматической фиксации с большим количеством строк, начинающихся с #. Я заметил, что иногда строка, начинающаяся с #, все еще попадает в журнал. Может быть, есть правило, что иногда # игнорируется, а иногда нет. Я хотел бы знать наверняка, чтобы избежать путаницы. – Polymerase
Я знаю об этом, но я изо всех сил пытаюсь понять, как добавление игнорируемых строк в сообщение фиксации является допустимым. – jbu