以下Git语句
cd periodtest/
git init
git config user.name "Test."
# verify that user.name is 'Test.'
git config user.name
touch README
git add README
git commit -a -m "period test"
以下结帐时的结果
# check user name after commit
git log
And the resulting commit w/out the period was:
commit 9b7e4960fd8129059b5759d1bb937b60241fd70b
Author: Test <email@test.com>
Date: Wed Oct 1 20:28:28 2014 -0700
period test
有没有办法让这段时间留在用户名中?
答案 0 :(得分:9)
此行为已硬编码为git。
编辑:目前对于git版本2.16.1(2018年1月22日)仍然如此。
要在提交过程中创建 author 字符串,请从字符串的开头和结尾删除 crud (如git所述)。为此,它使用strbuf_addstr_without_crud
- see ident.c line 406 version 2.16.1中定义的ident.c
函数。看一下函数头。
/*
* 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)
See ident.c lines 214-255 version 2.16.1
Git通过另一个检查特定字符的函数来确定 crud 。
static int crud(unsigned char c)
{
return c <= 32 ||
c == '.' ||
c == ',' ||
c == ':' ||
c == ';' ||
c == '<' ||
c == '>' ||
c == '"' ||
c == '\\' ||
c == '\'';
}
See ident.c lines 191-203 version 2.16.1
正如您所看到的那样,git会将某个句点视为 crud ,并且会被删除,目前没有任何标记或选项可以设置为避免此行为。
这意味着您有两种选择。
你派git并改变git创建 author 字符串的方式。
或者在尾随句点之后追加另一个字符,例如Zero-width space(通常无法在控制台上正确打印)
或者你可以随时在git邮件列表上提交功能请求,但在这种情况下,我不会过高的期望。