6

私は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 を選択すると、リポジトリ フォルダーのエクスプローラーで右クリックしてここで git bash を選択した場合とまったく同じウィンドウが表示されます。さて、エクスプローラーから開いたものではプッシュでき、拡張機能から開いたものでは公開鍵の問題が発生します。

4

7 に答える 7

6

確認事項:

  1. HOME環境変数の存在。
  2. そこに%HOME%\.ssh\および RSA キーが存在します。

コマンド プロンプトから git を実行する場合は、自動的git.cmdに修正されるため、を実行することをお勧めします。HOME

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

gitextensions を修正するには、HOME変数を定義し、同じ値に設定します。USERPROFILE

于 2010-11-06T11:36:22.360 に答える
6

わかりました、解決しました。

git 拡張機能から git bash を開き、エクスプローラー シェル拡張機能を使用して git bash を開きました。次に、両方から ssh -vvv git@github.com を実行して違いを確認しました。

git構成ファイルの場所を変更したため(時々再フォーマットする傾向があるため、 c:\documents and settings... は永続的に保持したいものを保存するのに悪いことで有名です)、実行時にgit 拡張機能から、git は別の場所で ssh キーも探していました。そこで、git cofig ファイルがある .ssh フォルダーを追加したところ、正常に動作するようになりました。git-extensions は、git の HOME 変数を、構成ファイルのパスとして設定したものに設定すると思います。

さて、それは明らかではありませんでした...

于 2010-11-06T12:15:44.797 に答える
2

正解は「max」(HOME env varを手動で設定)からのものですが、問題が発生している理由を理解するのに役立つ場合があります(Gitは世界中でより多くのユーザーを獲得するため、非常に一般的になります)。

Cygwinは$HOMEを/home/ yournameに設定しますが、その変数はWindows環境では認識されません。したがって、bashウィンドウを開いてenvを実行すると| grepHOMEここに記載されている3つの「HOME」変数がすべて表示されます。Gitextensionsが適切なcygwinHOMEを使用しないのはなぜか疑問に思われるかもしれません。これは.batファイルの呼び出しでは表示されないためです。表示されるものだけが表示されます。 Windowsコンソールで「set」を実行することから。

bashを呼び出す方法を知っているので、後でこの評価を行わず、適切なcygwinパスを取得しないのは不思議ですが、(少なくとも2.41までのバージョンでは)設定または.gitconfigでこの手動変更を行う必要があります。

于 2012-10-03T13:16:09.073 に答える
1

git bash を直接起動すると、MSYS のホーム フォルダーに移動します。ssh キー (id_rsa ?) が .ssh サブフォルダー (ホーム フォルダーからの相対パス) にあることを確認する必要があります。

于 2010-11-06T11:32:09.610 に答える
1

はい、HOME変数を設定しないことも問題でした。

HOME 変数を as%USERPROFILE%に設定し、秘密鍵と公開鍵を再生成してから、複製を試みてください。これで機能するはずです。

于 2016-05-05T01:14:43.753 に答える
1

問題が解決してよかったです。これは深刻な問題のように聞こえるので、GitExtensions から起動した場合の git-bash の違いに興味があります。GitExtensions には、これを修正する可能性のある設定があります。%HOME% ディレクトリは GitExtensios で変更できます。デフォルトでは %HOMEDRIVE%%HOMEPATH% に設定されますが、これをオーバーライドできます。これが問題であることを示唆しているため、これを変更するとおそらく問題が解決します。これを変更するには、設定ダイアログを開き、「git」タブに移動します。「環境」セクションで、%HOME% パスを設定できます。

これでも問題が解決するかどうかをお知らせいただければ幸いです。そもそも何が原因なのかにも興味があります。有効な HOME ディレクトリのチェックを改善できるかもしれません。

于 2010-11-06T15:39:40.757 に答える
-1

git 拡張機能で HOME 変数が USERPROFILE に設定されていることがわかります。追加とコミットはできますが、リモート リポジトリからのプッシュ/プルはできません。どのリモート リポジトリにも接続できません。接続には http (ssh ではありません) を使用します。ただし、git bash を使用すると、リモートに接続してプッシュ/プルを実行できます。私は問題GIT拡張機能がリモートに接続されていませんでしたが、git bashは接続しており、この問題に向けられました。しかし、問題を解決できません。何か案は?

于 2012-09-11T19:15:52.753 に答える