91

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

作業用コピーリポジトリをビルドマシン(別の物理ホスト上のVM)のオリジンとして使用できるようにしたいので、作業用コピーに対して行ったコミットを、経由せずにビルドマシンでビルドおよびテストできます。最初にGitHub。すでにGitHubリポジトリのビルドを行っていますが、これを「ゴールデン」リポジトリ/ビルドにしたいと思います。つまり、そこに何かが入った場合、GitHubに対するビルドが成功することが保証されます。

Git URLに関するドキュメントを確認しましたが、フォームでURLを使用するオプションがあることがわかりましたgit://host.xz[:port]/path/to/repo.git/(たとえば、git-cloneドキュメントを参照してください)。最小限の構成で、可能な限り簡単な方法でこれを実行したいと思います。これをビルドマシンに公開するためだけに、SSHデーモンまたはWebサーバーをセットアップする必要はありません。

Windows 7 x64 RCを実行していて、MSysGitとTortoiseGitをインストールしていて、ファイアウォールでGitのデフォルトポート(9814)を開いています。作業コピーリポジトリがD:\Visual Studio Projects\MyGitRepoにあり、ホスト名が。であると想定してくださいdevbox。ビルドマシンはWindowsServer2008x64です。ビルドマシンで次のコマンドを、関連する出力とともに試しています。

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)

私は何かが足りないのですか?

4

6 に答える 6

138

プル用のリポジトリを設定するには、次の 5 つの可能性があります。

  • ローカル ファイルシステム:git clone /path/to/repoまたはgit clone file://path/to/repo. ネットワーク化されたファイルシステムを使用している場合はほとんど機能しませんが、ネットワークをあまり効率的に使用することはできません。(これはJoakim Elofssonによって提案されたほぼ正確な解決策です)
  • HTTP プロトコル: git clone http://example.com/repo. Web サーバーが必要です。また、(おそらくフックから自動的に) git-update-server-infoを実行して、「ダム」プロトコルを介したフェッチ/プルに必要な情報を生成する必要があります。
  • 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-daemon は git の一部です。
  • bundle : git-bundleコマンドを使用してサーバー上でバンドルを生成し、任意の方法で (USB 経由でも) クライアント マシンに転送し、クローンを使用してクローンしgit clone file.bndlます (クローンが機能しない場合は、「git init」、「git remote add を実行できます。 " および "git fetch")。

あなたの例で欠けているのは、おそらくサーバー上で git-daemon を実行していることです。それ、または git-daemon の設定ミス。

残念ながら、MS Windows で git-daemon をサービスとして実行することについてはお手伝いできません。ただし、git-daemonが機能しないことについて、msysGitの最後のバージョンの発表には何もありません。

于 2009-06-10T22:13:13.843 に答える
19

Jakub Narębskiの回答に加えて、別の方法で、元の質問とより一致しています。通常のように github からクローンを作成できます。ローカル リポジトリから 1 回限りのプルを実行する場合は、次のようにします。

git pull /path/to/repo master

(マスターの代わりに任意のブランチ名を入れることができます。)

于 2009-06-11T17:30:30.140 に答える
2

次のようなパスがある場合

C:\Project\

git initすでに行っているので、フォルダーもあります

C:\Project\.git\

これで新しいフォルダーを作成できます

C:\.git\

そのフォルダーに移動して実行しgit clone --bare ..\Projectが重要です)、フォルダー
に戻って. これで、 、 、およびが実行され ます。C:\Project\git remote add-url local ..\.git\Project
git add -Agit commit -m "HelloWorld"git push local master

Projectフォルダーを共有し、接続してZ:実行git clone Z:\Projectすることができます。今すぐ使用してgit pull origin mastergit push origin masterあるコンピューターから別のコンピューターに変更をプッシュ/プルすることができます。

于 2015-11-11T07:38:04.300 に答える
1

最近、自分の git プロジェクトの 1 つを変更して、サイトコピーを使用して実際のファイルのアップロードを行う HTTP サーバーに複製するようにしました。

それは非常に簡単ですgit update-server-info.gitディレクトリを使用して、サーバー上のhttpアクセス可能なディレクトリにミラーリングするだけです。かなり一般的な「project.git」を使用しました。

http://site/project-gitからの Git プルはチャンピオンのように機能し、FTP アクセス以外にはサーバーに何も必要ありませんが、sitecopy は webdav もサポートしています。

ただし、複数のマシンの同期をうまく維持できないため、sitecopy の使用はお勧めしません。私のプロジェクトでは、HTTP リポジトリは読み取り専用で、ゴールドの更新は 1 台のマシンからのみ行われるため、十分に機能します。

于 2009-06-15T14:40:10.853 に答える
1

ssh ルートはうまく機能しますが、リモート ssh サーバーが必要です。Windows プラットフォームを使用している場合、Cygwin は Git で動作する動作する ssh サーバーを提供しますが、Cygwin Git を使用している場合は Git を手動でアップグレードします ( http://alecthegeek.wordpress.com/2009/01/21/top-tipにいくつかのヒントを書きました)。 -upgrade-git-on-cygwin/ )。

于 2009-06-13T03:27:39.527 に答える
0

リモート ホストが同じ Windows ネットワーク内にある場合、つまり \remotehost としてアクセスできる場合、エクスプローラーでネットワーク ドライブをマップできます。たとえば、z: --> \remotehost\repodir とします。その後、'git clone / z/myproject' でプロジェクトをクローン

于 2011-10-31T11:40:14.383 に答える