7

会社のサーバーから自分のパソコンに git リポジトリのクローンを作成したいと考えています。「外部」からこれらのサーバーにアクセスする唯一の方法は、ssh ごとに「machine1」にログインすることです。

ssh user@machine1.company.xy

残念ながら、その特定のマシンには git がインストールされていません。したがって、次のような git clone

git clone ssh://user@machine1.company.xy/path/to/repo <local-repo-path>

動作しません。私がしなければならないことは、「machine1」を介してネットワークにログインした後、git がインストールされている別のマシン「machine2」に変更することです。したがって、クローンを機能させるには、次のようなコマンドを実行する必要があります

ssh machine2

実際に git コマンドを実行する前に。それを行う方法はありますか?プレクローンフックのようなものでしょうか?

どうにかしてリモート リポジトリをファイル (パッチ?) にパックし、そのファイルをローカル マシンにコピーして、そのファイルからクローンを作成することはできますか?

ヒントや提案をお待ちしております!

4

1 に答える 1

13

これを行うには、ssh プロキシ コマンドを構成します。注: これは、プロキシ サーバーでnetcatが使用可能であることを前提としています。必要に応じて、netcat を perl などの同様のスクリプトに置き換えることができます。

以下を に追加し、~/.ssh/config必要に応じて作成します。

Host machine1
User yourusername
HostName machine1.yourcompany.com

Host machine2
User yourusername
ProxyCommand ssh machine1 nc %h %p
HostName machine2.internal.network

ssh machine2これで、マシン 1 を自動的にトンネリングできます。これは、git の使用が と同じくらい簡単であることを意味しgit clone ssh://machine2/pathます。

コマンドを使用して、リポジトリを単一のファイルにバンドルすることもできますgit bundle。ただし、これは適切な ssh プロキシ設定では必要ありません。

于 2011-01-22T19:51:23.217 に答える