我和我的同事正在考虑尝试git,看看我们是否可以轻松转移它。我们在仅限Windows的环境中工作。在我们自己的机器上,我们已经将ging设置为mingw32和SmartGit作为gui客户端。
是否有一种简单的方法更多地基于共享文件夹的概念而不是“托管服务器”的概念?例如,我们想在局域网上共享的文件夹上托管一个git存储库,在我们的机器上克隆它,看看如何将我们的更改推送回该文件夹,合并它们等等。
我们的第一个问题是从局域网克隆。当然git不能识别像\\mymachine\shared\repo
如何从我们的方法开始?是可行的吗?有什么建议吗?
提前致谢。
修改
正如所建议的,命令行方法有效。我们还必须反转斜杠,以便git clone //machine/directory/repository
成功。现在,我的同事有一个本地副本工作,做了一些更改......如何将它们推回到共享文件夹?
推送和获取本地路径上的工作,我们已经启动并运行我们的测试。谢谢大家!
答案 0 :(得分:19)
对于纯命令行解决方案,您是否尝试过
git clone file:///local/path/to/repo-name.git
在你的情况下:
git clone file:///\\mymachine/shared/repo.git
它应该可以正常工作。
2014年8月更新(4年后),Git 2.1
Eric Sunshine的 Commit c2369bd和Cezary Zawadka (czawadka
)意味着现在可以使用更简单的UNC路径:
Eric Sunshine修复了
mingw_offset_1st_component()
,以便为UNC“foo
”提供“//machine/share/foo
”,参见this thread。
所以现在应该可以了:
git clone //mymachine/shared/repo.git
答案 1 :(得分:11)
我们使用TortoiseGit。它接受的URL是// machinename / shared / repo。
答案 2 :(得分:1)
我的建议稍微回避了你的努力,但我一直在使用Mercurial,就像你在这里描述的那样,如果不是计划改变太多,我会鼓励你使用{{尝试一下。 Mercurial与基于文件路径的存储库一起工作的方式与“服务”存储库的工作方式完全相同(例如,它将\\server\shared_repo\repo_path
识别为要从中克隆的有效存储库路径。)
另外一点,据我所知,Mercurial的Windows支持相当远,而git仍然存在一些边缘兼容性问题(虽然看起来你已经解决了在Windows上使用git的许多最大挑战)
答案 3 :(得分:1)
我的帖子提供了使用Windows共享创建分布式git存储库的分步指南。我发现一个Windows共享适用于小项目。
答案 4 :(得分:0)
“我在家里使用了一些不同的计算机,我想设置GIT,我可以从其中任何一个访问我的代码。我花了一点时间因为我太习惯了使用客户端 - 服务器模型,我将一台机器指定为保存存储库的“服务器”,其他一切都是客户端。相反,GIT似乎更像是一个合并工具,每个本地副本都是它自己的“主机”。 “一旦我理解了这一点,事实证明,设置GIT非常简单,只需要GIT本身和SSH”。
要了解详情,您可以查看以下链接:http://blog.lazyhacker.com/2010/04/setting-up-git-for-home-network.html