簡體   English   中英

無法獲取git擴展以將某些內容推送到github SSH問題

[英]Cannot get git extensions to push something to github SSH problems

我正在嘗試使用git擴展,到目前為止我真的很喜歡它,但是我沒有設法推送到github。 以下命令在git bash中可以正常工作:

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

在git設置中,只是選擇了openSSH,我想保留它,因為膩子似乎更麻煩。

我在gitextensions中添加的遠程地址,實際上我只是為了測試而從bash中完成的唯一操作是上面的命令並生成SSH密鑰。 所有其他設置都在git擴展中。 所以我想一切都必須正確設置。 例如,電子郵件地址和名稱是正確的...

ssh git@github.com

也可以從bash連接良好

編輯

因此,我可以通過將git-extensions中的命令放入cmd中來重現錯誤。 顯然,從git bash和從cmd運行之間是有區別的,並且git-extensions像Windows命令一樣運行此命令...有什么線索嗎?

更新 :如果我從git-extensions的菜單中選擇git-bash,則得到的窗口與在repo文件夾中右鍵單擊資源管理器並在此處選擇git bash時完全相同 現在,在瀏覽器打開的一個中,我可以推動,在擴展打開的一個中,我得到公鑰問題。

檢查事項:

  1. 存在HOME環境變量。
  2. 存在%HOME%\\.ssh\\和RSA密鑰。

從命令promt運行git時,最好運行git.cmd ,因為它會自動修復HOME

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

要修復gitextensions,請定義HOME變量並將其設置為與USERPROFILE相同的值

好的,我解決了。

我從git擴展打開了git bash,並使用explorer shell擴展打開了git bash。 然后,我從兩個都運行ssh -vvv git@github.com來查看區別。

事實證明,因為我更改了git config文件的位置(我經常會不時地重新格式化,所以c:\\ documents和settings ...顯然不利於存儲我可能想要保持持久性的任何內容)從git擴展中,git還在其他位置尋找ssh密鑰。 因此,我在git cofig文件所在的位置添加了.ssh文件夾,現在它可以正常工作了。 我認為git-extensions將git的HOME變量設置為您設置為配置文件路徑的任何值。

現在,這並不明顯...

正確的答案是“ max”(手動設置您的HOME env var)中的答案,但它可能會幫助一些人理解問題發生的原因(隨着Git在世界范圍內吸引更多用戶,這將是非常普遍的)。

Cygwin將$ HOME設置為/ home / yourname,但是在Windows環境中該變量未知。 因此,如果您打開bash窗口並執行env | grep HOME,您會看到這里提到的所有三個“ HOME”變量,並且您可能想知道為什么Gitextensions不使用您的適當cygwin HOME-這是因為其.bat文件調用沒有看到它-它只能看到您看到的內容在Windows控制台中進行“設置”。

令人奇怪的是,為什么它以后不進行此評估並獲得正確的cygwin路徑,因為它知道如何調用bash,但是(至少在2.41版之前)必須在設置或.gitconfig中進行此手動更改。

是的,對我來說,不設置HOME變量也是一個問題。

將HOME變量設置為%USERPROFILE%並重新生成私鑰和公鑰,然后嘗試克隆-現在應該可以使用了。

當您直接啟動git bash時,您將進入MSYS的主文件夾。 您需要確保在.ssh子文件夾(相對於主文件夾)中具有ssh密鑰(id_rsa?)。

很高興您解決了問題。 由於這聽起來像是一個嚴重的問題,所以我對從GitExtensions啟動時git-bash之間的區別感興趣。 在GitExtensions中,有一個設置可以解決此問題。 可以在GitExtensios中更改%HOME%目錄。 默認情況下,它將設置為%HOMEDRIVE %% HOMEPATH%,但是您可以覆蓋它。 更改此選項可能會解決您的問題,因為您認為這是問題所在。 要更改此設置,請打開設置對話框,然后轉到標簽“ git”。 在“環境”部分中,您可以設置%HOME%路徑。

如果您讓我知道這是否也解決了問題,我將不勝感激。 我也首先對造成這種情況的原因感興趣。 也許我可以改善對有效HOME目錄的檢查。

我看到在git擴展名中將HOME變量設置為USERPROFILE。 我可以從遠程存儲庫添加和提交,但不能推/拉。 我無法連接到任何遠程存儲庫。 我們使用http(而不是ssh)進行連接。 但是,使用git bash可以連接到遙控器並進行推/拉。 我已經把我的問題放到了GIT擴展無法連接到遠程的地方,但是git bash確實可以,並且直接針對了這個問題。 但是,我無法解決我的問題。 有任何想法嗎?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM