在我无法设置user.name
和user.email
配置的存储库中,我需要使用以下命令编写提交脚本:
commit -a --message "message" --author="author"
消息和作者是参数化的。
当我提交错误的作者(rev-list
上没有,而git格式错误)时,我得到:
致命: - author'bad-formatted-author'不是'姓名',不匹配现有作者
如果作者在提交之前有效,有没有办法检查git?
答案 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
并显示参数以查看是否至少有一个匹配的提交
但是,一般情况下,尝试提交并捕获失败可能更简单。