在Windows局域网上的Git

我和我的同事正在考虑给我一个尝试,看看我们是否可以轻松地做到这一点。 我们在一个纯Windows环境下工作。 在我们自己的机器上,我们已经用gingw32和SmartGit作为GUI客户端。

有没有一个简单的方法更基于共享文件夹的概念比“托pipe服务器”的概念? 例如,我们希望在局域网上共享的文件夹上托pipe一个git存储库,将其克隆到我们的机器上,并查看如何将更改推回到该文件夹​​,合并它们等等。

我们的第一个问题是从局域网克隆。 当然,git不能识别像\\mymachine\shared\repo这样的path

如何从我们的方法开始? 是可行的吗? 有什么build议?

提前致谢。

编辑

如所build议的,命令行方法奏效。 我们还必须反斜杠,以便git clone //machine/directory/repository做了伎俩。 现在,我的同事有一个本地副本工作,做了一些改变…如何将他们推回到共享文件夹?

在本地path上推送和获取工作,我们启动并运行我们的testing。 谢谢你们!

我的建议稍微阻碍了你的努力,但是我一直在用和你在这里描述的方法完全一样的方式来使用Mercurial,如果没有太多的计划改变,我会鼓励你使用TortoiseHg 。 Mercurial使用基于文件路径的存储库,与“服务”存储库的工作方式完全相同(例如,它将识别\\server\shared_repo\repo_path作为克隆的有效存储库路径)。

另外一点,从我所知道的来看,Mercurial的Windows支持还差得很远,而git仍然有一些附带的兼容性问题(尽管你已经解决了在Windows上使用git的许多最大挑战)

对于纯粹的命令行解决方案,你尝试过了吗?

  git clone file:///local/path/to/repo-name.git 

在你的情况下:

  git clone file:///\\mymachine/shared/repo.git 

它应该工作得很好。


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

由Eric Sunshine和Cezary czawadkaczawadka ) 提交c2369bd意味着更简单的UNC路径现在的工作:

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

Eric Sunshine修复了mingw_offset_1st_component()以便为UNC“ //machine/share/foo ”返回一致的“ //machine/share/foo ”,比较此线程 。

所以这现在应该工作:

 git clone //mymachine/shared/repo.git 

我们使用TortoiseGit。 它接受的URL是// machinename / shared / repo。

我的文章有一步一步的指导,使用Windows共享创建一个分布式的Git仓库。 我发现一个Windows共享为小项目工作正常。

http://www.dalsoft.co.uk/blog/index.php/2011/08/30/getting-started-with-git-on-windows/#Creating_a_distributed_repository

“我有几台不同的电脑 ,我在家里使用,我想建立GIT,我可以从他们的任何一个访问我的代码,我花了一点,因为我太习惯于与客户端 – 服务器模型,我指定一台机器作为持有版本库的“服务器”,而其他所有的版本都是客户机,相反,GIT似乎更像是一个合并工具,每个本地副本都是自己的“主人”。一旦我理解了,设置GIT非常简单,只需要GIT本身和SSH“。

要阅读更多,你可以检查这个链接: http : //blog.lazyhacker.com/2010/04/setting-up-git-for-home-network.html