1

私はWindowsプラットフォームでgitを使い始めたところです。私はmysygitをインストールしていて、いくつかの問題を回避しています。

ただし、異なるWindowsマシン上の2つのmsysgitクライアントが互いに直接プッシュおよびプルする方法がわからないため、何かが足りないはずです。

私は完全なLinux初心者ですが、sshを使用するとLinuxでの配布が可能になることがわかります。ただし、msysgitクライアントはWindows cmdプロンプトの追加コマンドであるように見え、Windowsサービス要素はありません。

git clone 'MyMatesPc'反対側で誰がこのリクエストを聞いているのか試してみるとどうなりますか?

Linux(またはcygwin)でgitを実行している「中央」サーバーがある場合、あるマシンから「中央」リポジトリにコミットをプッシュし、別のマシンにプルダウンすることで、コミットを共有できることがわかります。

これは事実上、中央サーバーを使用する必要があることを意味します。

私はこれに問題はありませんが、私が何かを逃していないことを確認したかったです!

4

4 に答える 4

6

ローカルプロトコルを使用できます。同じLAN上の2台のPC上の2つのGitリポジトリが相互にプッシュ/プルするには、単純な共有パスで十分です。
(この場合)「中央」サーバーは必要ありません。


Noel Kennedyがコメントで指摘しているように、実行する前に、ドライブ文字をリモートリポジトリにローカルにマップする必要がありましたgit clone file:///z一部のバージョンのmsysgitではUNCパスが常にサポートされているとは限らない
ため、これが最も安全なパスです。

ただし、Git bashセッションのように、最近のmsysgitバージョンでUNCパスを使用できます。

$ cd /c/temp
$ git clone //remote-host/share/path/to/repo.git

/( Windows''の代わりに''に注意してください\

DOSセッションでは、パスを追加した後mingw/bin、それも機能する可能性があります(つまり、マップされたドライブの代わりにUNCパスを使用します)

C:\temp>set PATH=%PATH%;c:\msysgit\bin;c:\msysgit\mingw\bin
C:\temp>git clone \\\\remote-host\\share\\path\\to\\repo.git

2014年8月(4年後)の更新、Git 2.1

EricSunshineとCezaryZawadkaによるコミットc2369bd czawadkaは、より単純なUNCパスが機能することを意味します。

Windows:gitリポジトリにUNCパスを使用できるようにする

Eric Sunshineは、一貫して " " forUNC""mingw_offset_1st_component()を返すように修正しました。このスレッドを参照してください。foo//machine/share/foo

したがって、これは機能するはずです。

git clone //mymachine/shared/repo.git
于 2010-06-11T13:42:38.503 に答える
4

これは、msysgitの問題とは関係なく、gitを使用した(多くの)開発ワークフローに関するかなり一般的な誤解です。

Gitは分散開発であり、他のリポジトリよりも信頼できる特定の設計や構造を持つリポジトリはありません。ローカルリポジトリの中央リポジトリで行うことは何でもできます。その観点からすると、すべてが同等の立場にあります。 。

たとえば、Linuxカーネルには、何百もの異なるパブリックリポジトリがあります。一般に、Linusは信頼できるリポジトリと見なされ、kernel.orgのリリースは彼のツリーから切り取られますが、多くの人やプロジェクトが他のツリーを使用または維持しています( 「フォーク」、ただしその用語には特定の意味があります)、これに対するgitのサポートにより、Linusのツリー(または他のツリー-パターンを今見ていますか?)で発生する開発を追跡する際のインピーダンスの不一致やオーバーヘッドはほとんどありません。

多くのプロジェクトは中央リポジトリを使用します。これは、コラボレーションのモデルとしてよく理解されているため、または既存の継続的インテグレーションのセットアップに適合しているためです。また、gitはこのスタイルの開発にも同様に適していますが、これはワークフローの決定であり、必須ではありません。 (または好まれて)git自体によって。

msysgitまたはCygwinに関する限り、これらを介してsshを使用しても問題はありません。また、SSHプロトコルを使用するためのネイティブWindowsクライアントとしてPuTTyもあります。これはUNIXホストに固有のものではありません。ネイティブのgitプロトコルまたはHTTPを使用してプルすることも簡単です(プッシュは別の問題です)。(VonCが言ったように、ローカルリポジトリからもプルできるので、ネットワーク/ Samba共有など、gitとまったく同じものがある場合)。

于 2010-06-11T13:52:12.780 に答える
2

2台のマシン間の接続性に応じて、クローンリポジトリを処理する方法はたくさんあります。WindowsでGitサーバーを立ち上げる手間を省きたい場合は、Gitリポジトリを共有ディレクトリに保存し、file:プロトコルを使用してそれらにアクセスできます。使用するGitクライアントによっては、その共有ディレクトリをドライブ文字にマップする必要がある場合があります。

于 2010-06-11T13:50:05.133 に答える
0

gitサーバーコンポーネントは、win32、imhoではまだ十分にサポートされていません。

電子メールを介して人々からパッチを取得し、それらをリポジトリに適用できないと言っていることは何もありません。

また、分散バージョン管理のポイントは、リモートリポジトリとの同期を選択してもよいが、同期する必要がないことです。切断されたPCで世界中のどこでも(海の真ん中や遠く離れた砂漠を含む)gitを使用することを妨げるものは何もありません。

于 2010-06-11T13:43:50.343 に答える