git的承诺为不同的用户没有电子邮件/或只能通过电子邮件
我想提交一些变化为不同的用户,但我没有一个有效的电子邮件地址,下面的命令不是为我工作:git的承诺为不同的用户没有电子邮件/或只能通过电子邮件
git commit --author="john doe" -m "some fix"
fatal: No existing author found with 'john doe'
试图只用电子邮件地址
git commit --author="[email protected]" -m "some fix"
fatal: No existing author found with '[email protected]'
在git的手册页提交的commit命令它说我可以用
standard A U Thor <[email protected]> format
时,我有同样的问题
用于 - 作者选项。
此格式在哪里定义? A和U代表什么?我如何为仅使用用户名或只有电子邮件的其他用户提交?
的
标准。U托尔<作者@例子。COM >格式
似乎随后要定义: (据我所知,完全没有保证)
AU托尔= 所需的用户名
- 的分离字符可能是表示允许空格,它也可能与首字母大写相似。
- 的用户名已被后跟1个空间,多余的空格将被截断
<[email protected]> = 可选的电子邮件地址
- 必须始终< >符号之间。
- 的电子邮件地址格式不明确验证通过使用<>
如果不使用这个确切的语法,你几乎可以输入任何你想要的
例子:
-
只有用户名
略去电子邮件地址明确:
git commit --author="John Doe <>" -m "Impersonation is evil."
-
只有电子邮件
从技术上讲这是不可能的。但是,您可以输入电子邮件地址作为用户名,并明确省略电子邮件地址。这似乎不是很有用。 我认为从电子邮件地址中提取用户名并将其用作用户名会更有意义。但是,如果你有:
git commit --author="[email protected] <>" -m "Impersonation is evil."
我试图将存储库从善变转向Git的时候跑了这一点。 我测试了msysgit 1.7.10上的命令。
格式
A U Thor <[email protected]>
只是意味着你应该指定
FirstName MiddleName LastName <[email protected]>
貌似中间和最后一个名称是可选的(也许之前的部分电子邮件根本没有严格的格式)。尝试,例如,这样的:
git commit --author="John <[email protected]>" -m "some fix"
由于文档说:
--author=<author>
Override the commit author. Specify an explicit author using the standard
A U Thor <[email protected]> format. Otherwise <author> is assumed to
be a pattern and is used to search for an existing commit by that author
(i.e. rev-list --all -i --author=<author>); the commit author is then copied
from the first such commit found.
如果不使用这种格式,git的零食提供的字符串作为模式,并试图找出之间的匹配名单其他承诺的作者。
没有* FirstName MiddleName LastName *之类的东西。请参阅[this](http://stackoverflow.com/questions/11579311/git-commit-as-different-user-without-email-or-only-email#comment15320898_11579311)。 – 2012-07-20 12:59:12
必需的最少笔者格式,如this SO answer暗示到,是
Name <email>
在你的情况,这意味着你想要写
git commit --author="Name <email>" -m "whatever"
每威廉D'Haeseleer的评论,如果您没有电子邮件地址,您可以使用<>
:
git commit --author="Name <>" -m "whatever"
A如果您提供的内容少于此值,则将其用作搜索标记以搜索以前的提交,并查找该作者的其他提交。
只是补充:
git的承诺--author = “[email protected]” -m “模拟是邪恶的。”
在某些情况下,提交仍然失败,并告诉您以下消息:
***请告诉我你是谁。
运行
混帐配置--global user.email “[email protected]” 混帐配置--global user.name “你的名字”
设置您的帐户的默认身份。 省略--global仅在此存储库中设置标识。
致命的:无法自动检测的电子邮件地址(有XXXX)
所以只需运行“混帐配置”,然后“git的承诺”
如果您正致力于Github上你不需要一个真正的电子邮件,您可以使用<username>@users.noreply.github.com
无论使用Github上与否,你可能首先要改变你的提交者细节(在Windows上使用SET GIT_...
)
GIT_COMMITTER_NAME='username'
GIT_COMMITTER_EMAIL='[email protected]'
然后设置笔者
git commit --author="username <[email protected]>"
https://help.github.com/articles/keeping-your-email-address-private
*金*并不代表什么,它只是一个例子:* AU雷神* => *作者* => *作者* 。你可以指定任何你想要的名字。 – 2012-07-20 12:56:42
我知道阿托尔形式的作者,我想知道在分离中是否有任何意义。 – 2012-07-20 13:25:05
不,有。 – 2012-07-20 13:39:29