1. ホーム
  2. git

[解決済み] ローカルリポジトリをgit-pullで利用可能にするにはどうしたらいいですか?

2023-03-23 15:41:22

質問

私は問題なく作業しているコピーリポジトリを持っています。このリポジトリのオリジンはGitHubにあります。

作業コピーリポジトリを、ビルドマシン (別の物理ホスト上の VM) のオリジンとして利用できるようにしたいと思います。そうすれば、私が作業コピーに行ったコミットを、最初に GitHub を経由せずにビルドマシンでビルドしてテストすることができます。 私はすでにGitHubリポジトリ用のビルドを持っていますが、これはquot;golden"リポジトリ/ビルドであってほしいのです。

Git の URL に関するドキュメントを見たところ、URL の形式として git://host.xz[:port]/path/to/repo.git/ という形式の URL を使用するオプションがあることがわかりました (たとえば git-clone ドキュメント ). 私はこれをできるだけシンプルな方法で、最小限の設定だけで行いたいと思っています。これをビルドマシンに公開するために、SSH デーモンや Web サーバーをセットアップする必要はありません。

私は Windows 7 x64 RC を使用しており、MSysGit と TortoiseGit をインストールし、ファイアウォールで Git のデフォルトポート (9814) を開きました。 作業コピーリポジトリは D:\Visual Studio Projects\MyGitRepo にあり、ホスト名が devbox . ビルドマシンは、Windows Server 2008 x64です。 私は、ビルド マシン上で次のコマンドを試しましたが、関連する出力がありました。

D:\Integration>git clone "git://devbox/D:\Visual Studio Projects\MyGitRepo"
Initialized empty Git repository in D:/Integration/MyGitRepo/.git/
devbox[0: 192.168.0.2]: errno=No error
fatal: unable to connect a socket (No error)

何か見逃していませんか?

どのように解決するのですか?

pull fromのためのリポジトリを設定するために5つの可能性が存在します。

  • ローカルファイルシステム : git clone /path/to/repo または git clone file://path/to/repo . ネットワークに接続されたファイルシステムがある場合、最小限の作業で済みますが、ネットワークの使用効率はあまりよくありません。 (が提案する解決策とほぼ同じです。 Joakim Elofsson )
  • HTTP プロトコル : git clone http://example.com/repo . 必要なのは 任意の ウェブサーバが必要で、さらに(おそらくフックから自動的に)実行する必要があります。 git-update-server-info を実行して、quot;dumb" プロトコル経由でのフェッチ/プルに必要な情報を生成する必要があります。
  • SSH : git clone ssh://example.com/srv/git/repo または git clone example.com:/srv/git/repo . SSHサーバ(SSHデーモン)をセットアップし、クライアントにSSHをインストールする必要があります(例:MS WindowsのPuTTYなど)。
  • gitプロトコル : git clone git://example.com/repo . を実行する必要があります。 git-daemonを実行する必要があります。 をサーバ上で実行する必要があります。詳しくはドキュメントをご覧ください(サービスとして実行する必要はなく、取得のためだけにスタンドアロンプロセスとして実行することができます)。
  • バンドル : バンドルは git-bundle コマンドで生成し、それを任意の方法で (USB 経由でも) クライアントマシンに転送し、クローンするには git clone file.bndl (でクローンします(クローンがうまくいかない場合は、"git init", "git remote add", "git fetch" を実行するとよいでしょう)。

この例で欠けているのは、おそらくサーバー上で git-daemon を実行していることです。それか、git-daemon の設定が間違っているのでしょう。

残念ながら、MS Windows上でサービスとしてgit-daemonを実行することについては、私は手助けできません。msysGit の最後のバージョンのアナウンスには、git-daemon が動作しないことについては何も書かれていませんが。