Escape comment character (#) в сообщении git commit

Я установил mcedit в качестве моего редактора для сообщений git commit. По умолчанию он игнорирует любые строки, начинающиеся с символа #. Как бы странно это ни показалось, мне нужно иметь сообщение с моим сообщением, которое выглядит так:

#FOO-123: Implement bar foo

Committing work in progress

#FOO-123: ... на самом деле является ключевым + заголовком проблемы в нашем трекере. Трекер может автоматически собирать эти сообщения фиксации и добавлять их к проблеме.

К сожалению, первая строка обрабатывается как комментарий и игнорируется.

Я не хочу комментировать из командной строки, добавляя -m, поскольку это неудобно/уродливо, когда у вас несколько строк.

Как я могу обойти это?

Ответ 1

Вы можете попытаться определить другой символ для комментариев в сообщении коммита:

git config core.commentchar <another char>

Как я упоминал в " Начать сообщение git commit с хешмарка (#) ", этот параметр доступен начиная с git 1.8.2 (февраль 2013 г.).

В твоем случае:

git config core.commentchar "*"

Обратите внимание, что теоретически вы можете поместить слово core.commentchar (несколько символов), но git 2.0.x/2.1 будет более строгим.

Смотрите коммит 50b54fd Нгуена Тхаи pclouds Дуи (pclouds):

config: быть строгим на core.commentChar

Мы не поддерживаем строки комментариев (по крайней мере, пока). И многобайтовая кодировка символов также может быть неверно истолкована.

Тест с двумя запятыми обновляется, потому что это нарушает это. Он добавлен с патчем, который вводит core.commentChar в eff80a9 (Разрешить настраиваемый "комментарий char" - 2013-01-16). Мне не ясно, почему это поведение требуется.


poke также упоминает в комментариях, чтобы изменить шаблон коммита:

При редактировании сообщения о коммите, запустите редактор с содержимым в данном файле.
Конфигурационная переменная commit.template часто используется для неявного commit.template этой опции команде.


Обратите внимание, что Git 2.23 (Q3 2019) исправляет ошибку, так как " git interpret-trailers " всегда рассматривал " # " как символ комментария, независимо от настройки core.commentChar, которая была исправлена.

Смотрите коммит 29c83fc (19 июня 2019) Джеффа Кинга (peff).
(Объединено Junio C Hamano - gitster - в коммите 3a50607, 09 июля 2019 г.)

interpret-trailers: загрузить конфигурацию по умолчанию

Программа interpret-trailers не выполняет обычную загрузку конфигурации через git_default_config() и, таким образом, не git_default_config() многие из обычных опций.
В частности, мы не будем загружать core.commentChar, даже если базовый код трейлера использует его значение.

Это можно увидеть в сопровождающем тесте, где установка core.commentChar на что угодно, кроме " # ", приводит к невозможности корректной обработки комментариев.