在我添加ssh密钥并检查验证成功之后,我正在使用ssh密钥进行git。但我仍然无法提交代码
$ eval "$(ssh-agent -s)"
Agent pid 2599
$ ssh-add ~/id_rsa
Identity added: /home/vagrant/id_rsa (/home/vagrant/id_rsa)
$ssh -T git@github.com
Hi my-git-username! You've successfully authenticated, but GitHub does not provide shell access.
但我不能做提交
$ git commit -m "Develop Dockerfile for shopContainer"
*** 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: unable to auto-detect email address (got 'vagrant@vagrant-ubuntu-trusty-64.(none)')
答案 0 :(得分:14)
运行
git config --global user.email" you@example.com"
git config --global user.name"你的名字"
注意:您已成功通过身份验证,但git需要您的username & email
进行提交。
与身份验证无关。您的username/email
可能与您的GitHub帐户不同。
您需要为单次运行以下命令。
$ git config --global user.email "you@example.com"
$ git config --global user.name "Your Name"
$ git config --list # see if the 'name' & 'email' are set correctly
这user.name
& user.email
将在~/.gitconfig
文件中全局设置。
$ cat ~/.gitconfig # see global config file
答案 1 :(得分:2)
此错误告诉您从命令中省略--global。 要摆脱此错误,请按照我的步骤...
只需将此命令放入git控制台->
$ git config user.email "Your@emailaddres.com"
$ git config user.name "Your name"
在此之后,您的姓名和电子邮件将被设置为git,您现在就可以提交了。
$ git commit -m "Msg you want to print during commit" ##This will commit successfully##
输出->
[master (root-commit) 7d5681a] done
1 file changed, 1 insertion(+)
create mode 100644 demo.txt
如果对您有帮助,请告诉我。
答案 2 :(得分:0)
答案 3 :(得分:0)
其他答案中的建议在2020年将不再起作用。要删除重复的条目,现在可以采用以下方法:
git config --global --unset-all user.name
git config --global --unset-all user.email
您可能还必须在本地取消设置它们,即no --global标志。然后按照其他答案中的说明再次设置它们,即:
$ git config --global user.name "Your Name"
$ git config --global user.email "you@example.com"