【发布时间】:2014-03-04 03:18:26
【问题描述】:
我的 git 和我的终端有问题。
这是一个向您展示我的问题的画廊:http://imgur.com/a/6RrEY
当我从终端推送提交时,git 说我用另一个用户名推送它们,那是我的组织(我的公司)的用户,根本没有提交,它似乎不属于任何人:(查看画廊第一张照片)
但是当我使用 Github for mac 时不会发生这种情况,在提要中我看到自己推送的提交。
这个问题也影响了我的个人存储库,我的终端说我没有权限在这些存储库上推送提交(这显然是错误的),因为它试图用这个用户推送它:(检查画廊第二张照片)
你猜怎么着? Github for mac 也不会发生这种情况。
几天前我把我的电脑换了一台全新的,所以我重置了我所有 github 的 ssh 密钥,只留下了一个由 Github for Mac 生成的新密钥,所以我不认为有什么幽灵用户/ ssh 密钥隐藏在某个地方,这个硬盘是全新的:(查看画廊第三张图片)
我的 .gitconfig 文件很清楚,只有我的凭据:(查看画廊第四张图片)
我真的不明白,帮助,StackOverflow,你是我唯一的希望。
(对于我糟糕的 Gimp 技能和《星球大战》参考资料,我深表歉意)
编辑: ssh-add -l 只显示了 github 为 mac 创建的好的 ssh 密钥,我只有一个 github 帐户
EDIT2 : ssh -T git@github.com 认我是好用户。
EDIT3 : 经过几次测试后,我的终端似乎使用我的用户名进行提交,但使用另一个推送它们,Github for mac 提交并使用良好的用户名推送。这种情况发生我拥有/制作的每个回购(甚至是新的)。
EDIT4:在个人存储库中git log --pretty="%h %an %ae" 显示我的好用户名
EDIT5 :没有迹象表明环境变量会覆盖我在env 中的凭据。即使我尝试使用良好的凭据设置这些变量,问题仍然存在。
EDIT6:如果我强制用户进入存储库的/.git/config 路径,事情就会正常恢复,但我认为这不是一个好的选择:http://USER@github.com/USER/REPO.git
EDIT7:我们删除了为我推送提交的 git 用户,这带来了另一个错误:remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'
最终编辑:我用自制软件安装了 git,输入 git config --global push.default simple 现在即使不强制用户,它也需要我的凭据。那很奇怪。谢谢大家的帮助,你们很棒!
【问题讨论】:
-
检查
~/.gitconfig和$project_root/.git/config文件。这两个之一肯定是错误配置的用户名。 -
感谢您的回答 ansh0l。
~/.gitconfig很清楚,$project_root/.git/config也很清楚。事实上,我对每个个人项目都有这个问题,可以推送工作项目,因为这个其他用户属于拥有这些存储库的我的组织。 -
那你有多个github账号吗?一个供公司使用,另一个供个人使用?
-
不,一切只有一个。
-
一个烦人的解决方案是重新生成另一个 SSH 密钥。如果您将当前的 SSH 密钥与其他服务一起使用,那将毫无意义。