Git推送适用于Git Bash,但不适用于SmartGit或TortoiseGit

时间:2012-01-01 10:02:01

标签: git git-bash tortoisegit smartgit

所以我使用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可以   不提供shell访问权限。

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

  

远程端意外挂断

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

  

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

有效。因此它不适用于“git @ ...”,但可以使用“https:// ..”。 我尝试过另一个程序--SmartGit。它也给了我

  

远程端意外挂断

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

  

推送:身份验证失败

     

身份验证失败设置远程

     

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

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

3 个答案:

答案 0 :(得分:2)

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

答案 1 :(得分:1)

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

因此,在启动SmartGit之前,请确保将HOME设置为 %userprofile%

答案 2 :(得分:0)

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