16

WindowsでGitリポジトリを共有するにはどうすればよいですか?「正しい」方法は、「git-daemon」(unix固有)を実行するか、ssh(unix固有)を実行するか、Gitのhttpフロントエンドを実行することであるように見えます。Windowsボックスが2つだけあり、Gitを実行するためだけにUnixをインストールしたくない場合、2つのボックス間でリポジトリを共有するための最適な方法は何ですか?

4

5 に答える 5

8

両方のマシンが同じ LAN にある場合は、通常の Windows ネットワーク プロトコル (SMB) を介して共有されるディレクトリにリポジトリを配置できます。

(免責事項:SMBのロックセマンティクスについては確信が持てないため、リポジトリへの同時書き込みがリポジトリを破損する可能性があります。また、おそらくUnixにも同じことが当てはまります。)

于 2012-10-28T20:50:45.277 に答える
4

最も簡単な方法が必要な場合は、SCM-managerで確認する必要があります

Git、Mercurial、および Subversion リポジトリを http 経由で共有および管理する最も簡単な方法。

優れたWeb フロントエンドと管理を備えた http サービスのリポジトリを使用するには、Java (JRE ではなくJava)のみを使用する必要があります。

于 2012-10-29T07:18:54.360 に答える
3

仮想マシンを実行する代わりに、Cygwinですべての Unix を実行することもできます。Cygwin を使用すると、Windows マシンと gitolite に ssh サーバーをセットアップできます。また、仮想マシンではなくハードウェア上でネイティブに実行されます。

Cygwin のインストールは非常に簡単です。これは、必要なパッケージをダウンロードする単一の実行可能ファイルです。インストーラーは、Cygwin でソフトウェアを追加および削除するために使用するものであるため、手元に置いておいてください。

Cygwin で gitolite を実行するのは簡単ではありませんが、「cygwin gitolilte」とググるだけで、たくさんのチュートリアルを見つけることができます。

于 2012-10-29T02:29:53.923 に答える
1

Gitは分散バージョン管理システムです。したがって、ほとんどの場合、リポジトリ内のコンテンツを提供するための専用プログラムは必要ありません。両方のマシンからリポジトリにアクセスする方法が必要です。これを行う1つの方法は、@ thomasが提案し、リポジトリのクローンを共有ネットワークの場所に配置するようなものです。

私が過去に壊れた大学院生として成功したもう1つの方法は、Dropboxを「マスター」リポジトリとして使用することです。基本的に、リポジトリをDropboxディレクトリにgit cloneしてから、両方のマシンでGitをセットアップして、Dropboxリポジトリからプッシュ/プルすることができます。Dropboxはバックグラウンドで同期の魔法を実行します。これは、穏やかにアクティブなリポジトリでのみ機能します。

于 2012-10-29T04:27:05.057 に答える
0

私が過去に行ったことは、仮想ボックスを介して 1 台のマシンで小さな Linux クライアントを使用して VM を実行することだけでした。ssh ポートをポート転送するだけで済みます。VM 上でネットワークを複雑に構成する必要はありません。

これにより、gitolite などを実行してユーザーを管理できるようになります。

このため、および他の多くの理由から、私はすべてのマシンで Linux を実行するように切り替え、Windows 開発を行う必要があるときは VM で Windows を実行するだけにしました。Linux で実行できる優れたサービスの多くは、ゲスト OS から接続するよりも簡単に接続できます。

2 台の Windows マシンしかない場合は、URL をリモートに追加できますが、ファイル プロトコルを介して行われるようにしてください。すなわち:

 git remote add origin file:///\\some-server/share/repo.git

パスだけを使用すると、git が 2 つのリポジトリ間にハードリンクを作成しようとするという人もいます。私の知る限り、msysgitはこれを行わず、ファイルプロトコルのないパスを使用できます:

 git remote add origin /z/somepath/repo.git

z が他のマシンの共有にマップされている場合。あなたのシナリオではサーバーを実行する必要はありませんでした。

于 2012-10-29T02:10:07.007 に答える