Ответ 1
Это поведение жестко закодировано в git.
Изменить: В нынешнем виде это все еще верно для git версии 2.22.0 (19 июня 2019 года).
Чтобы создать строку автора во время коммита, git удаляет crud (как его называет git) из начала и конца строки. Для этого он использует функцию strbuf_addstr_without_crud
определенную в ident.c
- см. Identif.c line 406 version 2.22.0. Посмотрите на заголовок функции.
/*
* Copy over a string to the destination, but avoid special
* characters ('\n', '<' and '>') and remove crud at the end
*/
static void strbuf_addstr_without_crud(struct strbuf *sb, const char *src)
См. Id.c строки 221-255 версии 2.22.0.
Git определяет crud с помощью другой функции, которая проверяет наличие определенных символов.
static int crud(unsigned char c)
{
return c <= 32 ||
c == '.' ||
c == ',' ||
c == ':' ||
c == ';' ||
c == '<' ||
c == '>' ||
c == '"' ||
c == '\\' ||
c == '\'';
}
См. Id.c линии 198-210 версии 2.22.0.
Как вы можете видеть, период считается git и будет удален, и в данный момент нет никакого флага или параметра, который вы можете установить, чтобы избежать такого поведения.
Это означает, что у вас есть два варианта.
-
Вы раскручиваете git и изменяете способ, которым git создает строку автора.
-
Или вы добавляете другой символ после завершающего периода, например пробел нулевой ширины (который часто не будет правильно печататься на консоли)
В качестве альтернативы вы всегда можете отправить запрос на добавление функций в список рассылки git, но в этом случае я бы не стал слишком сильно возлагать надежды.