" git config -l"显示我的用户名/电子邮件设置,但git push要求输入用户名

时间:2015-09-28 21:51:29

标签: git github

鉴于我的电子邮件和用户名包含在〜/ .gitconfig中:

$cat ~/.gitconfig
[user]
    name = MyFirst MyLast
    email = myemail@gmail.com

并且git config -l"看到"他们:

$git config -l
user.name=MyFirst MyLast
user.email=myemail@gmail.com

为什么git push 不能看到它们?

 $git push origin master
Username for 'https://github.com': 

以下是更多信息:

状态:

git status
On branch master
Your branch is based on 'origin/master', but the upstream is gone.
  (use "git branch --unset-upstream" to fixup)
Untracked files:
  (use "git add <file>..." to include in what will be committed)

遥控器:

git remote -v
origin  https://github.com/<owner>/<repo> (fetch)
origin  https://github.com/<owner>/<repo> (push)

2 个答案:

答案 0 :(得分:3)

这是两个截然不同的数据部分

配置中的用户名适用于设置提交作者的内容。

当您推送到遥控器时提示您输入用户名时,这是不同的。这些是身份验证凭据。

Git不会假设配置的用户名与身份验证凭据用户名相同。

这是一件好事。例如,一个非常真实的例子:

我的在Git中配置的用户名Thomas Stringer

我的 GitHub用户名tstringer

如果这是假设的话,那我必须覆盖或重新配置会非常烦人。

答案 1 :(得分:1)

这更多是@Thomas Stringer对答案的评论/补充(将被接受):

处理这个的方法是我们ssh(与〜/ .ssh / config一起使用)。

git remote set-url origin ssh://git@github.com/<owner>/<repo>