无法从 xcode 7 推送到 gitlab
Cannot push to gitlab from xcode 7
升级到 Xcode 7 的一个不愉快的副作用是我无法再推送到我的 Gitlab 存储库。在过去的两年里,我一直在毫无问题地推动和拉动我的项目,所以我怀疑 Xcode 7 正在做一些不同的事情。我已经通过 Web 界面登录和注销验证了我的 u/p for Gitlab。当我转到 Xcode > Preferences > Accounts,select gitlab 项目时,我看到用户名和密码在那里(就像它们已经存在 2 年一样)并且我验证它们是正确的.
值得注意的是,我可以从终端成功 post,但是,我不希望定期使用终端将我的代码推送到 Gitlab。升级后有没有其他人遇到过这个问题?关于修复有什么建议吗?
我收到的具体错误是 "Authentication failed because the user name or password was incorrect."此错误出现在“帐户”对话框中,以及在尝试推送到 gitlab 存储库后出现。
所以这个问题很棘手,老实说,我不确定这个错误的根本原因是什么,但我的解决方法是这样的:
- 从 GitLab 中删除了我的旧 ssh 密钥
- 在命令行上创建了一个新的 ssh 密钥,然后将其添加到 GitLab
- 从 Xcode > 首选项 > 帐户中删除了 GitLab 存储库
- 重新添加 GitLab 帐户,使用 SSH 密钥选项(以前也是,这不是新的)
- 关闭Xcode
- 吹走项目的工作目录
- 打开 Xcode,然后选择源代码管理 > 签出
- 提供了 SSH 地址(您可以从项目文件夹中的 GitLab 获取)
- 为了测试 Push
的能力,对项目做了一个小改动
- 通过 Xcode 源代码管理 > 推送
推送到 GitLab
瞧!工作了。这绝对是核选项,但它让我再次工作。我坚信将 Xcode 升级到 7 搞砸了。如果其他人有这个问题,我希望这能解决它!
我发现 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
我的问题是 Xcode 尝试使用错误的密钥文件:.ssh/id_rsa 而不是 .ssh/id_dsa
与 xcode 7.
相同的问题
我设法通过重新生成 RSA 密钥并在 Gitlab 中更新它们来解决这个问题。
编辑:不幸的是这只工作了 1 次
Edit2:在更改 SSH 密钥后工作了一次 "right out of the box",第二次我得到了登录凭据的问题,您可以在 username/password 和 SSH 密钥之间进行选择的对话框。选择 SSH 密钥然后工作。之后对话框就没有再出现了。
所以,总结一下:
- XCode 推送到 Gitlab 不工作(要求登录凭据,SSH 密钥不工作)
- 重新生成 SSH RSA 密钥并将其添加到 Gitlab(我删除了旧的)
- 然后推送在没有对话框的情况下工作
- 下次 xcode 要求使用 username/password 个 SSH 密钥登录
- 选择 SSH 密钥有效
- 此后登录对话框不再出现
我的问题是 id_rsa 是一个符号 link。
我的 .ssh/id_rsa 文件是另一个文件的符号 link。在 xcode 中,我指定了这个符号 link 作为我的 ssh 私钥文件。
在此配置中,git 拉动正常但 git 推动失败。
然后,在 xcode 中,我将 ssh 私钥文件更改为指向常规文件(符号 link 指向的文件)。瞧,推和拉现在都起作用了。
Xcode 版本 8.1 (8B62)
升级到 Xcode 7 的一个不愉快的副作用是我无法再推送到我的 Gitlab 存储库。在过去的两年里,我一直在毫无问题地推动和拉动我的项目,所以我怀疑 Xcode 7 正在做一些不同的事情。我已经通过 Web 界面登录和注销验证了我的 u/p for Gitlab。当我转到 Xcode > Preferences > Accounts,select gitlab 项目时,我看到用户名和密码在那里(就像它们已经存在 2 年一样)并且我验证它们是正确的.
值得注意的是,我可以从终端成功 post,但是,我不希望定期使用终端将我的代码推送到 Gitlab。升级后有没有其他人遇到过这个问题?关于修复有什么建议吗?
我收到的具体错误是 "Authentication failed because the user name or password was incorrect."此错误出现在“帐户”对话框中,以及在尝试推送到 gitlab 存储库后出现。
所以这个问题很棘手,老实说,我不确定这个错误的根本原因是什么,但我的解决方法是这样的:
- 从 GitLab 中删除了我的旧 ssh 密钥
- 在命令行上创建了一个新的 ssh 密钥,然后将其添加到 GitLab
- 从 Xcode > 首选项 > 帐户中删除了 GitLab 存储库
- 重新添加 GitLab 帐户,使用 SSH 密钥选项(以前也是,这不是新的)
- 关闭Xcode
- 吹走项目的工作目录
- 打开 Xcode,然后选择源代码管理 > 签出
- 提供了 SSH 地址(您可以从项目文件夹中的 GitLab 获取)
- 为了测试 Push 的能力,对项目做了一个小改动
- 通过 Xcode 源代码管理 > 推送 推送到 GitLab
瞧!工作了。这绝对是核选项,但它让我再次工作。我坚信将 Xcode 升级到 7 搞砸了。如果其他人有这个问题,我希望这能解决它!
我发现 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
我的问题是 Xcode 尝试使用错误的密钥文件:.ssh/id_rsa 而不是 .ssh/id_dsa
与 xcode 7.
相同的问题我设法通过重新生成 RSA 密钥并在 Gitlab 中更新它们来解决这个问题。
编辑:不幸的是这只工作了 1 次
Edit2:在更改 SSH 密钥后工作了一次 "right out of the box",第二次我得到了登录凭据的问题,您可以在 username/password 和 SSH 密钥之间进行选择的对话框。选择 SSH 密钥然后工作。之后对话框就没有再出现了。
所以,总结一下:
- XCode 推送到 Gitlab 不工作(要求登录凭据,SSH 密钥不工作)
- 重新生成 SSH RSA 密钥并将其添加到 Gitlab(我删除了旧的)
- 然后推送在没有对话框的情况下工作
- 下次 xcode 要求使用 username/password 个 SSH 密钥登录
- 选择 SSH 密钥有效
- 此后登录对话框不再出现
我的问题是 id_rsa 是一个符号 link。
我的 .ssh/id_rsa 文件是另一个文件的符号 link。在 xcode 中,我指定了这个符号 link 作为我的 ssh 私钥文件。
在此配置中,git 拉动正常但 git 推动失败。
然后,在 xcode 中,我将 ssh 私钥文件更改为指向常规文件(符号 link 指向的文件)。瞧,推和拉现在都起作用了。
Xcode 版本 8.1 (8B62)