如何检查Git提交作者是否有效

4
在一个无法设置user.nameuser.email配置的代码库中,我需要用脚本提交:

commit -a --message "message" --author="author"

消息和作者是参数化的。

当我使用错误的作者(不在rev-list中且格式不正确)提交时,会出现以下错误:

致命错误:--author 'bad-formatted-author' 不是 'Name ',也没有匹配到任何现有的作者

在提交之前,是否有任何方法可以检查作者是否有效?

2个回答

5

请使用git commit -a --message "message" --author="author" --dry-run命令。

加上--dry-run标志将使git commit不会实际提交任何内容,但如果给定的--author选项字符串无效,则仍然会以非零退出。

请注意,退出状态为非零可能有其他原因,例如提交为空(即没有任何更改)。


2
这在文档中确实是正确的:

--author=作者

      覆盖提交者。使用标准的A U Thor <author@example.com>格式指定显式作者。否则,假定作者是一种模式,并用于搜索该作者的现有提交(即rev-list --all -i --author=作者);然后从找到的第一个提交复制提交者。

你甚至在你的问题中复制了这些:

在rev-list上不存在且格式错误的git

这意味着这是你的答案:检查格式是否与Name <email>样式匹配,如果不匹配,则使用所示参数运行git rev-list以查看是否至少有一个匹配的提交。
总的来说,最简单的方法可能是尝试提交并捕获失败。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接