无法从xcode 7推送到gitlab

时间:2015-09-28 02:47:37

标签: gitlab xcode7

升级到Xcode 7的一个不愉快的副作用是我不能再推送到我的Gitlab回购。在过去的两年里,我一直在推动和拉动我的项目,所以我怀疑Xcode 7正在做一些不同的事情。我通过Web界面登录和退出Gitlab验证了我的u / p。当我去Xcode>偏好>帐户,选择gitlab项目,我看到用户名和密码在那里(就像他们已经2年一样)并且我验证它们是正确的。

值得注意的是,我可以成功地从终端发帖,但是,我不希望使用终端将我的代码定期推送到Gitlab。升级后有没有其他人遇到过这个问题?有关修复的任何建议吗?

我得到的具体错误是“身份验证失败,因为用户名或密码不正确”。此错误出现在“帐户”对话框中,以及尝试执行推送到gitlab repo后。

5 个答案:

答案 0 :(得分:7)

所以这个人非常吵架,说实话,我不确定这个错误的根本原因是什么,但我解决它的方式是:

  1. 从GitLab中删除了我的旧ssh密钥
  2. 在命令行上创建了一个新的ssh密钥,然后将其添加到GitLab
  3. 从Xcode中删除了GitLab repo>偏好>帐户
  4. 使用SSH密钥选项重新添加GitLab帐户(之前也是如此,这不是新的)
  5. 关闭Xcode
  6. 吹走项目的工作目录
  7. 打开Xcode,然后选择Source Control>结帐
  8. 提供SSH地址(您可以从项目文件夹中的GitLab获取)
  9. 为了测试Push
  10. 的能力,对项目进行了一些小改动
  11. 通过Xcode源代码控制推送到GitLab>推
  12. 瞧!工作。这绝对是核选择,但它让我再次工作。我坚信将Xcode升级为7会搞砸了。如果其他人有这个问题,我希望这能解决它!

答案 1 :(得分:3)

与xcode 7相同的问题。

我设法通过重新生成RSA密钥并在Gitlab中更新它来解决这个问题。

编辑:遗憾的是,这只有一次

Edit2:在更改SSH密钥后“开箱即用”工作一次后,我第二次收到登录凭据的问题,您可以在对话框中选择用户名/密码和SSH密钥。选择SSH密钥然后工作。之后,对话框不再出现了。

所以,总结一下:

  1. XCode推送到Gitlab不工作(要求登录凭据,SSH密钥不起作用)
  2. 重新生成SSH RSA密钥并将其添加到Gitlab(我删除了旧的)
  3. 然后推动没有对话的工作
  4. 下次xcode要求使用SSH密钥的用户名/密码登录
  5. 选择SSH密钥
  6. 之后,登录对话框不再出现

答案 2 :(得分:2)

我发现Xcode 7不再喜欢在URL中倾斜“〜”了。请运行“git config --list”并检查URL。例如,我的远程URL看起来像这样:

ssh://nobody@nowhere.com/~/product1.git

运行以下命令后,Xcode可以正常运行:

git remote set-url origin ssh://nobody@nowhere.com/home/nobody/product1.git

git config branch.master.remote ssh://nobody@nowhere.com/home/nobody/product1.git

答案 3 :(得分:1)

我的问题是Xcode尝试使用错误的密钥文件:.ssh / id_rsa而不是.ssh / id_dsa

答案 4 :(得分:1)

我的问题是id_rsa是一个象征性的链接。

我的.ssh / id_rsa文件是另一个文件的符号链接。在xcode中,我已将此符号链接指定为我的ssh私钥文件。

在这个配置中,git pull正在运行,但是git push失败了。

然后,在xcode中,我将ssh私钥文件更改为指向常规文件(符号链接指向的文件)。瞧,推拉都在起作用。

Xcode版本8.1(8B62)