如何检查git commit author是否有效

时间:2016-05-03 17:31:24

标签: git bash github

在我无法设置user.nameuser.email配置的存储库中,我需要使用以下命令编写提交脚本:

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

消息和作者是参数化的。

当我提交错误的作者(rev-list上没有,而git格式错误)时,我得到:

  

致命: - author'bad-formatted-author'不是'姓名',不匹配现有作者

如果作者在提交之前有效,有没有办法检查git?

2 个答案:

答案 0 :(得分:4)

使用git commit -a --message "message" --author="author" --dry-run

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

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

答案 1 :(得分:2)

这在the documentation中是正确的:

  

--author=author

     

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

您甚至在问题中复制了这些内容:

  

不存在于rev-list中,而且格式不合适git

这意味着这是您的答案:检查格式以查看它是否与Name <email>样式匹配,如果不匹配,请运行git rev-list并显示参数以查看是否至少有一个匹配的提交

但是,一般情况下,尝试提交并捕获失败可能更简单。