web-dev-qa-db-ja.com

プロキシ経由のgit://

ポート9418(git)をブロックしているファイアウォールの背後にいて、git://github.com/...のチェックアウトを明示的に行うツールをインストールしようとしているため、チェックアウトのためにhttpsに切り替えることができません。

だから私はそれがプロキシを介してポート9418にすべてのトラフィックをリダイレクトすることが可能かどうか、もしそうならどのように:)

51
Mark Kahn

見て core.gitproxyGit config の設定。

クイックグーグルにより、このスクリプトは有用である可能性がある(またはそうでない可能性がある-私は試していない)ことが明らかになりました。 https://Gist.github.com/49288

22

Gitサブモジュールについて話している場合は、これを試してください:

git config --global url.https://github.com/.insteadOf git://github.com/

... ここ から取得。

このように、プロキシを設定したり、スクリプトを実行したりする必要はありません。

78
mppfiles

SOCKSプロキシを介してgitをリモートサーバーに接続するプロキシコマンドを指すcore.gitProxyを作成する必要があります。次のコンテンツを含むスクリプトを作成して、プロキシコマンドとして使用できます。

nc -x <your_proxy_Host>:<your_proxy_port> $1 $2

リモートホストとポートを表す2つのパラメーターは、gitによってプロキシコマンドに渡されます。このスクリプトにgit-proxyという名前を付け、$PATHからアクセスできるようにすると、git configを呼び出して設定できます。

git config --global --add core.gitProxy git-proxy
3
Mihai Capotă

SshベースのTCPトンネル?

ssh -L localhost:9418:<remote>:9418 me@remote-ssh-server

または、ファイアウォールを回避するためにポート443でsshdを実行する必要がある場合、

ssh -P 443 -L localhost:9418:<remote-Host>:9418 me@remote-ssh-server

次に、ローカルで:

git checkout git://localhost/...

明らかに、これは透過的ではなく、少し複雑です。問題をより具体的に対象とするツールは間違いありません。ただし、私が手にする必要のあるツール(sshと私がレンタルするcheapo仮想サーバー)を使用するため、通常はこの方法を使用します。

(実際にこれをgit接続で試したことはありませんが、なぜ動作しないのかわかりません。他の多くのシングルTCPポートプロトコルで問題なく使用しました。)

3
ijw