1

私が貢献した OSS プロジェクトが github に移動したことを発見しました。hg-git をインストールし、git:// URL からローカル リポジトリを複製しました。それから私は変更を加えました。

その後、自分の github フォークが本当に必要であることに気付き、作成しました。しかし、既存のローカルリポジトリを切り替える方法を完全に理解することができませんでした. フォークの git:// URL を使用するようにローカル リポジトリの設定を変更しました。しかし、変更をプッシュできません。https:// URL を使用するように指示されていますが、その変更を行うと、プルもプッシュもできません。エラー 406、「受け入れられません」が表示されます。

ローカル リポジトリでの作業は最小限なので、やり直すことはできますが、ローカル リポジトリとフォークが今すぐ接続できれば簡単です。

アップデート

SSHキーを管理できるように、Github for Windowsをインストールしました。キー (github_rsa) を生成し、それを私の Github アカウントに添付しました。

hgrc ファイルを編集[ui]ssh=し、ローカルの git 'ssh' コマンドを指す設定を追加しました ( に埋め込まれてい%APPDATA%\Local\Githubます)。

これで、ssh-agent を生成すると思われる「git-shell」ウィンドウに入ると、「hg incoming」などのコマンドを入力でき、接続が確立されます。これで、リモート リポジトリの URL が正しく設定され、git-shell エコシステム内で SSH キーが正しく設定されました。

通常の CMD.EXE ウィンドウから、同じコマンドを実行すると、「許可が拒否されました (公開鍵)」というメッセージが表示されます。TortoiseHg から、「incoming」アクションを試みると同じエラーが表示されます。TortoiseHg を使い続けたいのですが、SSH を使用する方法がわかりません。

最終更新

何らかの理由で、TortoisePlink は github の SSH サーバーを操作したくありません。少なくとも、Github-for-Windows で生成されたキーは操作したくありません。そのため、Github for Windows はまだインストールされています (必ずしも悪いことではありませんが、私がやりたかったことには不要です)。

hg と TortoiseHg を接続するには、プロジェクトの設定を変更する必要がありました。

[ui]
ssh = %USERPROFILE%\AppData\Local\GitHub\<salt>\bin\ssh -i %USERPROFILE%\.ssh\github_rsa

つまり、ポータブル GitHub と共にインストールされた SSH コマンドをポイントし、コマンド ラインで github が生成したキーを指定します。この構成では、ssh-agent を実行する必要はありません。

4

1 に答える 1

1

ssh 経由でプッシュする必要があります。つまり、次の方法でプッシュする必要があります。

hg push git+ssh://git@github.com/<login>/<repo>

git@URL の最初の部分でログインの代わりに を使用していることに注意してください。これは実際に重要です。サーバーは、提供された SSH キーを介して資格情報を把握します。

最初に ssh キーを GitHub アカウントに追加する必要がある場合もあります (このページのステップ 4に従って)。

これは、GitHub UI を介して元の GitHub リポジトリのフォークを作成したことを前提としています。hg-git を使用して空のリポジトリにプッシュするには、追加の手順が必要になる場合があります。

于 2015-05-31T07:46:11.317 に答える