2010-11-06 34 views
6

我试着去使用git扩展和我真的很喜欢它,到目前为止,但我不设法推到github上。下面的命令在Git的bash中正常工作:无法获得git的扩展,推动东西github上SSH问题

git push "origin" master:master 

,然后当我把使用Git扩展我得到这个:

C:\Program Files\Git\bin\git.exe push "origin" master:master 
Permission denied (publickey). 
fatal: The remote end hung up unexpectedly 

Done 

在它只是采用openSSH选择git的设置,我想保持因为腻子似乎更麻烦。

我在gitextensions添加的远程ADDRES,其实我从庆典做只是为了测试的唯一事情就是上面和gerenating SSH密钥的命令。其他的都在git扩展中设置。所以我想一切都必须正确设置。例如,的电子邮件地址和名称是否正确......

ssh [email protected] 

还连接细,从庆典

编辑

所以我可以从git-把命令重现错误在cmd中扩展。显然,从git bash运行和从cmd运行有区别,git-extensions像Windows命令一样运行这个命令......任何线索?

更新: 如果让我选择从混帐的扩展菜单混帐的bash我得到一个窗口,是正是一样,当我在资源管理器中右键单击我的回购文件夹,并选择在这里git的庆典。现在,在从资源管理器打开的那个中,我可以推入,并且在从扩展中打开的那个中,我得到了公钥问题。

回答

5

好的,我解决了它。

我打开从混帐扩展混帐bash和使用资源管理器外壳扩展混帐庆典。然后我运行ssh -vvv [email protected]查看差异。

原来,因为我改变了混帐配置文件的位置(我倾向于现在,然后重新格式化所有的,所以C:\文件和设置...对于存储任何我想要保持持久性的东西来说是臭名昭着的),当从git扩展运行时,git也在寻找不同位置的ssh密钥。所以我添加了我的git cofig文件所在的.ssh文件夹,现在它工作正常。我认为git-extensions会将git的HOME变量设置为您为config文件设置的路径。

现在,这不明显......

+0

只是为了让使用git.exe我认为这是扩展使用什么它会在程序文件使用sh.exe它会搜索用户的.ssh目录文件的文件夹中的.ssh更加清晰......只是复制了一个.ssh文件夹中的文件到另一个 – MarkKGreenway 2011-01-11 01:51:39

+0

也发生在我身上。使用Git Extensions UI中的git bash告诉我git在C:\ Users \ Me \ AppData \ Local \ Ixss \ home \ me \ .ssh中寻找我的密钥,这是我的密钥实际存在的地方。但是,从开始菜单启动Git Bash应用程序显示它正在查看C:\ Users \ Me \ .ssh。由于某种原因,这个路径是Git扩展所用的push/pull/fetch/etc,即使它自己的git bash中有其他的说法 – Daniel 2018-02-22 20:49:53

1

当你火起来的git bash的直接,你会在MSYS主文件夹的土地。您需要确保在.ssh子文件夹(相对于主文件夹)中有您的ssh密钥(id_rsa?)。

+0

这就是它的地方。我通常通过浏览器外壳扩展来发送ssh,所以我最终立即进入回购站。节省了很多打字。这个问题的一些新进展,请查看我上面的更新。 – nus 2010-11-06 12:00:30

6

要检查的事项:

存在的
  1. HOME环境变量。
  2. 存在的%HOME%\.ssh\和RSA密钥存在。

当运行从命令PROMT优选运行git.cmd,GIT中,因为它会自动修复HOME

@if not exist "%HOME%" @set HOME=%HOMEDRIVE%%HOMEPATH% 
@if not exist "%HOME%" @set HOME=%USERPROFILE% 

要解决gitextensions,定义HOME变量并将其设置为相同的值USERPROFILE

+0

感谢您的努力。事实证明,家庭变量确实已经超出了我的意识。 – nus 2010-11-06 12:17:25

+0

谢谢,我有一个类似的问题(权限被拒绝publickey)和设置HOME变量工作。 – Bryan 2012-04-04 17:23:53

1

很高兴你解决了这个问题。由于这听起来像是一个严重的问题,我对从GitExtensions开始的git-bash感兴趣。在GitExtensions中有一个可以解决这个问题的设置。 %HOME%目录可以在GitExtensios中更改。默认情况下它会被设置为%HOMEDRIVE %% HOMEPATH%,但是你可以覆盖它。改变这可能解决你的问题,因为你认为这是问题。要改变这个打开设置对话框并转到标签“git”。在“环境”部分中,您可以设置%HOME%路径。

如果你让我知道,如果这也解决了这个问题,我将不胜感激。我首先对造成这种情况的原因感兴趣。也许我可以改进检查一个有效的HOME目录。

+0

感谢您的关注! +1基本上,这正是我所做的,但我认为我很困惑,因为我最初的意图只是改变git配置文件的位置。该条目的设置对话框中的文本显示:“位于环境存储变量%HOME%中的全局配置文件”。接下来,它可以让你选择“使用默认的HOME”或其他,这给我的印象是只涉及配置文件。我认为重写这句话可能是一个好主意。原因现在想起来,可能git只使用这个配置文件,如果现在从扩展调用... – nus 2010-11-06 15:54:46

+0

据我了解,git扩展只是覆盖系统环境变量%HOME%为git.exe,这不是我从对话中了解。在我的情况下,实际上并不是非常理想,除非它与浏览器外壳扩展一致。我正在寻找的是告诉git将它的设置存储在自定义位置。 – nus 2010-11-06 15:59:36

-1

我看到HOME变量被设置在git的扩展USERPROFILE。我可以添加和提交,但不能从远程存储库中推/拉。我无法连接到任何远程存储库。我们使用http(而不是ssh)进行连接。但是,使用git bash我能够连接到远程并执行推/拉。我已经把我的问题GIT extensions does not connect to remote but git bash does并针对这个问题。但是,我无法解决我的问题。有任何想法吗?

2

正确的答案来自'max'(手动设置你的HOME env var),但它可能有助于理解问题发生的原因(因为Git在全球范围内获得更多用户将会非常普遍)。

Cygwin的设置$ HOME为/ home /提供yourname,但该变量没有在Windows环境闻名。所以如果你打开一个bash窗口并执行env | grep HOME你会看到这里提到的所有三个'HOME'变量,你可能会想知道为什么Gitextensions不使用你正确的cygwin HOME--这是因为它的.bat文件调用没有看到它 - 它只能看到你看到的东西从在Windows控制台做'设置'。

这很神秘,为什么它稍后不做这个评估,并且因为知道如何调用bash而得到正确的cygwin路径,但是(至少在版本高达2.41的情况下),您必须在设置中手动更改或在.gitconfig中。

1

是,不设置HOME varible是问题对我来说太。

设置HOME变量为%USERPROFILE%并重新生成私钥和公钥,然后尝试克隆,它现在应该工作。