2010-11-06 36 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%並重新生成私鑰和公鑰,然後嘗試克隆,它現在應該工作。