在Windows局域网上使用Git

27

我和我的同事正在考虑尝试使用git,看看我们是否能轻松地转换到它。我们在Windows-only环境中工作。在我们自己的机器上,我们已经设置好了mingw32和SmartGit作为GUI客户端。

是否有一种更基于共享文件夹概念而不是“托管服务器”概念的简单方法?例如,我们想在LAN上分享一个git仓库并将其克隆到我们的机器上,然后查看如何将更改推回该文件夹,合并它们等。

我们遇到的第一个问题是从LAN中克隆。当然,git不认识像\\mymachine\shared\repo这样的路径

如何开始我们的方法?这可行吗?有什么建议吗?

提前致谢。

编辑

如建议的那样,命令行方法起作用了。我们还必须反转斜杠,以便git clone //machine/directory/repository就可以解决问题。现在,我的同事拥有了本地副本,做了一些更改...如何将它们推回共享文件夹?

推送和提取也适用于本地路径,我们正在进行测试。谢谢大家!


1
针对您的编辑,通过指定远程仓库,在命令行上运行 git push 应该可以让您获得所需的推送功能。 - Kit Roed
Pistacchio,请与我分享您实际的设置,因为我正在尝试同样的事情,但它失败了。 - gath
5个回答

19

对于纯命令行解决方案,您尝试过以下操作吗?

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

根据您的情况:

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

它应该可以正常工作。


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

提交 c2369bd 由 Eric Sunshine 和 Cezary Zawadka (czawadka) 执行,这意味着一个更简单的 UNC 路径现在可用:

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

Eric Sunshine 修复了 mingw_offset_1st_component() 返回一致地 "foo" 用于 UNC "//machine/share/foo",参见此线程

因此,现在应该可以正常工作:

git clone //mymachine/shared/repo.git

11

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


1
普通的Git应该也能够无障碍地接受这样的URL。如果不行,另一个可能的方法是让每个团队成员将共享文件夹映射到一个选择的驱动器号(例如X:),然后使用它来代替。 - Mark Embling

1

我的建议可能会让你有些偏离原来的努力方向,但我一直在使用Mercurial,就像你在这里描述的那样。如果不是计划变更太大,我鼓励你尝试使用TortoiseHg。Mercurial与基于文件路径的存储库的工作方式完全相同,就像它与“服务”存储库的工作方式一样(例如,它将识别\\server\shared_repo\repo_path作为有效的存储库路径进行克隆)。

另外,据我所知,Mercurial在Windows上的支持已经非常成熟,而git仍然存在一些边缘兼容性问题(尽管似乎你已经解决了使用git在Windows上遇到的最大挑战之一)。


1
我想快速补充一下评论,这个答案很旧(而且很糟糕,因为我没有回答“问题”)。 我会投票支持最高得票的答案,以承认更好的答案。 - Kit Roed

1

0

我在家里有几台不同的电脑,我想设置GIT,以便我可以从任何一台电脑访问我的代码。这花了我一点时间,因为我太习惯于使用客户端-服务器模型,其中我指定一台机器作为“服务器”,保存存储库,其他所有内容都是客户端。相反,GIT似乎更像一个合并工具,每个本地副本都是自己的“主”副本。一旦我理解了这一点,就发现设置GIT非常简单,只需要GIT本身和SSH。

要了解更多信息,请查看此链接:http://blog.lazyhacker.com/2010/04/setting-up-git-for-home-network.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接