我的组织正在从Bitbucket转向Github进行项目管理 . 今天,我试图通过使用SourceTree将我们最近的项目从Bitbucket转移到Github . 我在项目中添加了第二个远程存储库(使用Github上目标存储库的URL),使所有内容保持最新,然后尝试将代码推送到存储库 . 弹出一个框,询问我的Github帐户的密码 . 我输入了(正确的)密码,然后单击“确定”,再次弹出对话框 . 我再次输入了密码(正确),它做了同样的事情 .
我的用户名被正确识别,我的密码是正确的,我尝试更新SourceTree,因为我听说这是以前版本的问题 . 问题依然存在 .
我正在使用SourceTree 2.3.1
9 回答
打开终端并克隆你的回购 . 存储库url必须有你的usedid,例如:
然后将克隆的文件夹拖放到sourceTree窗口中 . 您也可以单击“新建存储库”按钮,然后从菜单中选择“添加现有本地存储库” . 它可能会再次要求输入密码,但这次它会被添加到您的钥匙串中 .
如果您使用GitHub进行双因素身份验证,则需要create a personal access token and use it with SourceTree:
Mac Users: 如果您的SourceTree继续要求输入密码,请转到终端并输入以下内容:
更新后我有类似的事情;我尝试重新添加我的bitbucket凭据,更改协议等,没有运气,直到......
我打开了我的钥匙串并在密码类别下搜索了bitbucket(可能与github相同,只是搜索github) .
我发现我的用户有多个访问密钥,所以我关闭了我的存储库,删除了所有“应用程序密码”类的密钥,打开了SourceTree首选项>帐户>删除了我的帐户并重新添加它(像往常一样登录 - 我使用Basic和HTTPS) .
Keychain要求保存密码的权限,我说是的,现在我只看到一个“应用程序密码”的密钥 .
我从repo浏览器打开我的存储库,嘿presto,没有更多的密码弹出窗口!
这让我误认了整整一个星期!如果这对你有所帮助,你现在可以和我一起跳舞:)
安德鲁·马吉尔给出了一个解决方案,来自资料来源:link
问题是SourceTree的嵌入式Git客户端带有git-credential-manager v1.12,它不再适用于Github,因为它们在他们的站点上禁用了TLS 1.1 . 你需要获得git-credential-manager v1.14 . 最简单的方法是单独安装Git客户端的当前副本,然后切换SourceTree以使用它(“system git”)而不是其嵌入式客户端 . 或者,您可以通过使用Microsoft的最新版本替换其文件来更新嵌入式客户端中的git-credential-manager .
如果您没有使用GitHub 2FA,则向您询问密码的另一个原因是:
你的GitHub repo url是一个ssh,而不是一个https .
由于git没有找到你的ssh密钥(或者你的ssh密钥没有注册到你的GitHub帐户),它会失败回到帐户/密码机制 .
如果您使用2FA(和https网址),那么您need a personal token as a password .
在我的情况下,即使主项目使用ssh,这也发生了一个默认为https的子模块 . 我通过在SourceTree的存储库设置中更改子模块的repo路径来修复它,以使用ssh路径而不是https .
SourceTree版本2.4.8.0
对我来说问题似乎是SourceTree和GitHub之间的设置顺序 . 我首先设置了SourceTree,然后点击了所有“稍后设置”选项 .
一个简单的解决方法 - 卸载并重新安装SourceTree . 非显而易见的位需要手动删除实际的程序文件 .
从任何“SourceTree.exe”快捷方式,打开文件位置 . 我分叉了“C:\ Users \ myusername \ AppData \ Roaming \ Microsoft \ Windows \ Start Menu \ Programs \ Atlassian”,其中快捷方式指向另一个快捷方式 .
打开该快捷方式的文件位置 . 我最终以“C:\ Users \ myusername \ AppData \ Local \ SourceTree”结束 . 删除整个“SourceTree”文件夹 . 上一级到“... \ Local”并删除“Atlassian”文件夹 .
现在卸载SourceTree . 确保你的GitHub按照你想要的方式设置(对我来说,我还创建并保存了一个用于SourceTree设置的SSH密钥) . 使用所有正确的凭据重新安装SourceTree,指向正确的存储库等 .
毕竟,SourceTree两次请求我的GitHub凭据,有两个不同的对话框,然后停止并工作!没有更多无限循环 . 祝好运!
如果您使用"Username & Password"身份验证,则可以尝试更改为使用 SSH keys 进行身份验证 .
每次我提交GitLab时都遇到过这种情况 . 当我改变认证方式时: SSH keys ,问题已经解决了 .
这是我发现的(在我的驱动器C :)中搜索'sourcetree'之后:
卸载SourceTree
删除文件夹C:\ Users [用户名] \ AppData \ Local \ Atlassian \ SourceTree
删除文件夹C:\ Users [username] \ AppData \ Local \ SourceTree
重新安装SourceTree