首页 文章

SourceTree一直在询问Github密码

提问于
浏览
16

我的组织正在从Bitbucket转向Github进行项目管理 . 今天,我试图通过使用SourceTree将我们最近的项目从Bitbucket转移到Github . 我在项目中添加了第二个远程存储库(使用Github上目标存储库的URL),使所有内容保持最新,然后尝试将代码推送到存储库 . 弹出一个框,询问我的Github帐户的密码 . 我输入了(正确的)密码,然后单击“确定”,再次弹出对话框 . 我再次输入了密码(正确),它做了同样的事情 .

我的用户名被正确识别,我的密码是正确的,我尝试更新SourceTree,因为我听说这是以前版本的问题 . 问题依然存在 .

我正在使用SourceTree 2.3.1

9 回答

  • 2

    打开终端并克隆你的回购 . 存储库url必须有你的usedid,例如:

    $ git clone https://<username>@github.com/<userId>/<reponame>.git
    $ git clone https://mark@github.com/mak123/<reponame>.git
    

    然后将克隆的文件夹拖放到sourceTree窗口中 . 您也可以单击“新建存储库”按钮,然后从菜单中选择“添加现有本地存储库” . 它可能会再次要求输入密码,但这次它会被添加到您的钥匙串中 .

  • 0

    如果您使用GitHub进行双因素身份验证,则需要create a personal access token and use it with SourceTree

    要在SourceTree中使用GitHub的双因素身份验证,您只需使用访问令牌而不是密码 . 执行此操作的步骤如下:转到GitHub中的个人访问令牌设置 . 单击Generate new token按钮 . 将该令牌命名为描述性的 . 选择您希望授予此令牌的范围 . 单击“生成令牌”按钮 . 复制令牌并将其用作托管存储库中的密码 . 您可以在GitHub的帮助中找到有关此内容的更多信息 .

    Mac Users: 如果您的SourceTree继续要求输入密码,请转到终端并输入以下内容:

    git config --global credential.helper osxkeychain
    
  • 1

    更新后我有类似的事情;我尝试重新添加我的bitbucket凭据,更改协议等,没有运气,直到......

    • 我打开了我的钥匙串并在密码类别下搜索了bitbucket(可能与github相同,只是搜索github) .

    • 我发现我的用户有多个访问密钥,所以我关闭了我的存储库,删除了所有“应用程序密码”类的密钥,打开了SourceTree首选项>帐户>删除了我的帐户并重新添加它(像往常一样登录 - 我使用Basic和HTTPS) .

    • Keychain要求保存密码的权限,我说是的,现在我只看到一个“应用程序密码”的密钥 .

    我从repo浏览器打开我的存储库,嘿presto,没有更多的密码弹出窗口!

    这让我误认了整整一个星期!如果这对你有所帮助,你现在可以和我一起跳舞:)

  • 0

    安德鲁·马吉尔给出了一个解决方案,来自资料来源: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 .

  • 1

    如果您没有使用GitHub 2FA,则向您询问密码的另一个原因是:

    你的GitHub repo url是一个ssh,而不是一个https .
    由于git没有找到你的ssh密钥(或者你的ssh密钥没有注册到你的GitHub帐户),它会失败回到帐户/密码机制 .

    如果您使用2FA(和https网址),那么您need a personal token as a password .

  • 0

    在我的情况下,即使主项目使用ssh,这也发生了一个默认为https的子模块 . 我通过在SourceTree的存储库设置中更改子模块的repo路径来修复它,以使用ssh路径而不是https .

  • 0

    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凭据,有两个不同的对话框,然后停止并工作!没有更多无限循环 . 祝好运!

  • 22

    如果您使用"Username & Password"身份验证,则可以尝试更改为使用 SSH keys 进行身份验证 .

    每次我提交GitLab时都遇到过这种情况 . 当我改变认证方式时: SSH keys ,问题已经解决了 .

  • 0

    这是我发现的(在我的驱动器C :)中搜索'sourcetree'之后:

    • 卸载SourceTree

    • 删除文件夹C:\ Users [用户名] \ AppData \ Local \ Atlassian \ SourceTree

    • 删除文件夹C:\ Users [username] \ AppData \ Local \ SourceTree

    • 重新安装SourceTree

相关问题