【问题标题】:Git push works in Git Bash but not in SmartGit or TortoiseGitGit push 在 Git Bash 中有效,但在 SmartGit 或 TortoiseGit 中无效
【发布时间】:2012-01-31 08:00:06
【问题描述】:

所以我使用 Git Bash 创建了一个 repo,它可以工作(github.com 上的本地和远程 repo)。 我已经推送了 README 文件进行测试,它确实有效。在我的配置中一切似乎都还好:

[core]
    repositoryformatversion = 0
    filemode = false
    bare = false
    logallrefupdates = true
    symlinks = false
    ignorecase = true
    hideDotFiles = dotGitOnly
[gui]
    pruneduringfetch = true
    encoding =
[remote "origin"]
    url = git@github.com:SOME_USERNAME/some-project-name.git
    fetch = +refs/heads/*:refs/remotes/origin/*
[branch "master"]
    remote = origin
    merge = refs/heads/master

$ ssh -V git@github.com 给出:

您好 SOME_USERNAME!您已成功通过身份验证,但 GitHub 成功了 不提供外壳访问。

而且我可以推送文件和所有内容,但只能通过 Git Bash。 但是,我尝试使用它,但它给了我以下错误:

远端意外挂断

当我手动将“来源”网址更改为:

https://SOME_USERNAME@github.com/SOME_USERNAME/some-project.git

成功了。所以它不适用于“git@...”,但可以使用“https://..”。 我试过另一个程序——SmartGit。它也给了我

远端意外挂断

但是当我尝试在 SmartGit 中执行此“更改 url 技巧”时,对于“https://...”,它给了我以下错误:

推送:认证失败

身份验证失败设置远程

设置协议不支持的远程服务路径。

我完全迷失了所有这些东西。我做错了什么?

【问题讨论】:

  • 你知道 TortoiseGit 和 GitBash 是否使用相同的 ssh 密钥?

标签: git git-bash tortoisegit smartgit


【解决方案1】:

尝试以管理员身份运行 SmartGit。

【讨论】:

    【解决方案2】:

    SSH 将在 %HOME%/.ssh 中查找密钥,其中 ("HOME") 并不总是被定义(msysgit 将默认定义它,可能是 TortoiseGit 但 you can specify your ssh keys,可能不是 SmartGit

    所以在启动 SmartGit 之前,请确保 HOME 设置为 %userprofile%

    【讨论】:

      【解决方案3】:

      它不适用于“git@”网址但适用于“https”这一事实表明,这与您的 SSH 密钥设置有关。确保您为 TortoiseGit 选择了“OpenSSH”选项(而不是 PUTTY),并在 TortoiseGit 的设置页面中验证“远程”部分是否指向放置密钥的位置。

      【讨论】:

      • 是的,我在设置中选择了 OpenSSH。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-01-19
      • 2021-07-14
      • 2020-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-21
      相关资源
      最近更新 更多