git推着错误的用户从terminal

我有一个与git和我的terminal问题。

这是一个画廊向您展示我的问题: http : //imgur.com/a/6RrEY

当我从我的terminal推送提交时,git说我用另一个用户名推送他们,这是我的组织(我的公司)的一个用户,根本没有任何提交,似乎它不属于任何人:( 检查画廊第一张图片)

但是,当我使用Github for mac时,并没有发生这种情况,在feed中我看到了自己提交的提交。

这个问题也影响到我的个人仓库,我的terminal说我没有权限推这些仓库的提交(这显然是错误的),因为它试图用这个用户推它:( 检查画廊第二图片)

你猜怎么了 ? Github也不会发生这种情况。

我几天前把电脑换成了一台全新的电脑,所以我重新设置了所有的github的ssh密钥,只留下了Github为Mac生成的一个新密钥,所以我不认为有一些隐藏的ghost用户/ ssh密钥隐藏某处,这个硬盘是全新的:( 检查画廊第三张图片)

我的.gitconfig文件都清楚,只有我的凭据:( 检查画廊第四图)

我真的不明白,帮助,StackOverflow,你是我唯一的希望。

(我为我可怜的GIMP技能和星球大战参考而道歉)

编辑: ssh-add -l只显示由github为mac创build的良好的ssh密钥,我只有一个github帐户

编辑2: ssh -T git@github.com承认我是好用户。

编辑3:几个testing后,它看起来像我的terminal提交我的用户名,但推它们与另一个,Github的Mac提交,并推出了良好的用户名。这种情况发生在每个回购我有/使(甚至新那些)。

编辑4:在个人存储库中git log --pretty="%h %an %ae"显示我的好用户名

编辑5:没有迹象的环境variables,将覆盖我的环境我的信用证 。 即使我试图设置这些variables与良好的凭据问题仍然存在。

编辑6:事情正常工作,如果我强制用户的存储库/.git/config的path,但我不认为这是好的select: http://USER@github.com/USER/REPO.git

编辑7:我们删除了推送提交给我的git用户,这带来了另一个错误: remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/' remote: Invalid username or password. fatal: Authentication failed for 'https://github.com/USER/REPO.git/'

最终编辑:我用自制软件安装了git,input git config --global push.default simple ,现在即使不强制用户也需要我的凭据。 真奇怪。 谢谢大家的帮助,你们是好人!

我刚刚在工作中遇到了这个问题。 内置git附带mac或安装xcode时,会在keychain中cachinggit凭证。 对我来说,解决的办法是:

启动钥匙串访问(通过CMD +空间启动聚光灯,键入钥匙串,按回车键)

在左上方的钥匙串下,select“login”在左边的类别下,select“密码”

find名字“github”并删除它。

尽pipe所有其他用户提供的很好的select,解决这个问题的唯一方法是完全重新安装git,然后inputgit config --global push.default simple地重写好的证书。

它看起来像我的terminal提交我的用户名,但推他们与另一个

作者和提交者的姓名和电子邮件(这是重要的GitHub)来源于:

 git config user.name git config user.email 

但是,正如在git configgit commit-tree提到的那样,这些值可以被环境variables覆盖:

 GIT_AUTHOR_NAME GIT_AUTHOR_EMAIL GIT_COMMITTER_NAME GIT_COMMITTER_EMAIL 

所以仔细检查这些variables。

如果我强制用户在一个版本库的.git/config中的东西恢复正常,但我不认为这是好的select。

但它应该是一个很好的解决scheme。
当使用httpsurl时,我总是指定用户,以确保用正确的用户进行身份validation。

 http://USER@github.com/USER/REPO.git 

临时解决scheme是先运行killall ssh-agent然后添加为你需要使用ssh-add ~/.ssh/id_4shameer的帐号生成的ssh密钥

当我们得到ERROR: Permission to user/repo-git.git denied to username.types的ERROR: Permission to user/repo-git.git denied to username.时,它将帮助我们处理多个github帐户ERROR: Permission to user/repo-git.git denied to username.

github通过它看到的ssh密钥识别你,而不是通过git的任何设置。

因此,当您尝试从您的个人帐户推送您的工作帐户的ssh密钥时,您需要确保您的工作帐户的ssh密钥不在您的钥匙圈中,反之亦然。

使用ssh-add -l来确定你的钥匙圈里有哪些钥匙,用ssh-add -d <keyfile>从你的钥匙圈中删除一个钥匙,如果它的工作量从~/.ssh/config删除了'不想要的'ssh钥匙。

资源

如果你使用的是MAC,那么去钥匙串访问Keychain Access),并删除你不想要访问的用户的条目。