我编写了以下bash函数,该函数应该使用我的用户名硬编码创建一个提交。是的我知道git config
,这只是展示我遇到的问题的最小例子。
# lib.sh
function lock-commit() {
local commit_author="Varun Madiath <varun@example.com>"
git commit --author="${commit_author}" "$@"
}
然而,当我运行它时,它给出了下面的错误。直接在命令行上运行该命令不会导致错误。
[vmadiath@magma ac-test]$ source lib.sh
[vmadiath@magma ac-test]$ lock-commit -m "test"
*** Please tell me who you are.
Run
git config --global user.email "you@example.com"
git config --global user.name "Your Name"
to set your account's default identity.
Omit --global to set the identity only in this repository.
fatal: empty ident name (for <vmadiath@localhost.localdomain>) not allowed
鉴于我明确传递了作者,我不需要设置user.email
和user.name
配置设置。
知道为什么会这样,以及我如何纠正这种行为。
答案 0 :(得分:1)
Git记录每次提交的两个细节:作者(这是你要覆盖的)和提交者(这就是它的内容)在你的设置中寻找。)
这允许一个用户代表另一个用户提交更改,同时记录存储库中两个用户的详细信息。