SourceTree GUI 无法推送,终端可以推送

SourceTree GUI can't push, terminal can push

以下问题: 当我提交东西时,我无法通过单击 GUI 按钮来推送它们 我收到此错误消息:

git -c diff.mnemonicprefix=false -c core.quotepath=false push -v --tags origin master:master Pushing to ssh://xxxxx@git.mydomain.de/srv/git/MyFolder/MyProject.git

fatal: Could not read from remote repository.

Please make sure you have the correct access rights and the repository exists.

当我从这个错误消息中复制完全相同的命令并单击 "Terminal" 按钮并将其粘贴到那里时,它按预期工作,没有任何错误。

我做错了什么?

我猜 SourceTree 无法从远程存储库中读取,因为它无法对您进行身份验证。

确保 SourceTree 可以访问您的 ssh 密钥。您可以使用 pagent 来做到这一点。

通过将“SSH 客户端配置”更改为 OpenSSH 并设置您的 id_dsa,它将得到修复(应创建 SSH 密钥并将其添加到首先是gitlab)。


转到 Tools->Options->General:在 SSH 客户端配置 中设置 SSH 客户端OpenSSH,select 您的 id_dsa SSH 密钥

如果您不使用 SSH,仅使用常规 HTTPS,则另一种解决方案是通过 github 的配置文件下拉菜单 > 设置 > 开发人员设置 > 个人访问令牌创建个人访问令牌。

在那里你可以允许你想要使用的所有权限。然后在 Sourcetree 应用程序中,转到您拥有 Github 帐户的位置,对其进行编辑,为 Auth Type 选择 basic 并粘贴您从 Github 获得的个人访问令牌,然后单击保存。现在尝试您想要的 git 操作,该操作以前不起作用,它现在应该起作用,因为现在您将能够通过 Github.

进行身份验证

我遇到了同样的问题,即未通过身份验证并需要创建此访问令牌,因为该错误表明 Sourcetree 有更新并且我无法像以前那样使用我的 Github 密码。