Git在Windows上,它是真正的分布式?

Noe*_*edy 1 git cygwin msysgit

我刚开始在Windows平台上使用git.我已经安装了mysygit并禁止了一些打嗝,我很乐意离开.

但是,我必须遗漏一些东西,因为我不明白不同Windows机器上的两个msysgit客户端如何直接相互推送和拉动?

我是一个完整的Linux noob,但我想我可以看到ssh的东西允许在Linux上发布.但是,msysgit客户端似乎只是windows cmd提示符中的附加命令,并且没有Windows服务元素.

如果我试着git clone 'MyMatesPc'在另一端听谁的请求?

我可以看到,如果你有一个'中央'服务器在linux(或cygwin)上运行git,你可以通过将它们从一台机器上推到'中央'仓库,然后将它们拉到另一台机器上来共享提交.

这实际上意味着您必须使用中央服务器.

我对此没有任何问题,但想检查一下我没有遗漏任何东西!

Von*_*onC 6

您可以使用本地协议:一个简单的共享路径足以让同一LAN上的两台PC上的两个Git存储库相互推送/拉出.
不需要(在这种情况下)"中央"服务器.


正如Noel Kennedy在评论中指出的那样,他必须在执行之前在本地将驱动器号映射到远程仓库:git clone file:///z.
这是最安全的路径,因为某些版本的msysgit并不总是支持UNC路径.

您可以将UNC路径与最近的msysgit版本一起使用,就像在Git bash会话中一样:

$ cd /c/temp
$ git clone //remote-host/share/path/to/repo.git
Run Code Online (Sandbox Code Playgroud)

(注意' /'而不是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
Run Code Online (Sandbox Code Playgroud)

2014年8月更新(4年后),Git 2.1

由Eric Sunshine和Cezary Zawadka(czawadka)提交c2369bd意味着现在可以使用更简单的UNC路径:

Windows:允许对git存储库使用UNC路径

埃里克·阳光(Eric Sunshine)mingw_offset_1st_component()坚持不断回归" fooUNC //machine/share/foo",参考这个主题.

所以这应该工作:

git clone //mymachine/shared/repo.git
Run Code Online (Sandbox Code Playgroud)