如何在 Windows 上共享 Git 存储库?“正确”的方法似乎是运行“git-daemon”(特定于 unix)或运行 ssh(特定于 unix)或为 Git 运行 http 前端。如果我只有两个 Windows 机器并且不想安装 Unix 只是为了运行 Git,那么在两个机器之间共享存储库的最佳方式是什么?
5 回答
如果两台机器在同一个 LAN 中,您可以将 repo 放在通过常规 Windows 网络协议 (SMB) 共享的目录中。
(免责声明:我不确定 SMB 的锁定语义,因此可能同时写入 repo 可能会破坏它。再说一次,Unix 可能也是如此。)
如果你想要最简单的方法,你必须在SCM-manager看到
通过 http 共享和管理 Git、Mercurial 和 Subversion 存储库的最简单方法。
另一种替代运行虚拟机的方法是在Cygwin中运行所有 Unix 的东西。使用 Cygwin,您可以在 Windows 机器上设置 ssh 服务器以及 gitolite。它在您的硬件而不是虚拟机上本机运行。
Cygwin 安装非常简单。它只是一个下载您需要的软件包的可执行文件。保留安装程序,因为您将使用它在 Cygwin 中添加和删除软件。
在 Cygwin 上运行 gitolite 并不那么简单,只需 google “cygwin gitolilte”,你会发现很多教程。
Git 是一个分布式版本控制系统。因此,在大多数情况下,您不需要专门的程序来提供存储库中的内容,您只需要一种从两台机器访问存储库的方法。这样做的一种方法就像@thomas 建议的那样,并将存储库的克隆放置在共享网络位置。
作为一名破产的研究生,我过去发现的另一种成功方法是使用 Dropbox 作为“主”存储库。基本上,您将存储库 git 克隆到您的 Dropbox 目录中,然后您可以在两台机器上设置 Git 以从 Dropbox 存储库推/拉。Dropbox 将在后台执行同步魔法。这仅适用于轻度活跃的存储库。
我过去所做的只是通过虚拟机在一台机器上运行带有小型 linux 客户端的 VM。您只需要端口转发 ssh 端口就可以了 - 无需将网络配置为 VM 上的复杂内容。
这将允许您运行诸如 gitolite 之类的东西来管理用户。
由于这个和许多其他原因,我已经切换到为我的所有机器运行 Linux,并且当我需要进行 Windows 开发时只在 VM 中运行 Windows。您可以在 Linux 上运行的许多出色服务比其他方式更容易从来宾操作系统连接。
如果您只有 2 台 windows 机器,您可以向远程添加一个 url,但要确保它是通过文件协议完成的。IE:
git remote add origin file:///\\some-server/share/repo.git
有些人声称,如果你只使用一条路径,git 会尝试在 2 个 repos 之间建立硬链接。AFAIK,msysgit 不这样做,您可以使用没有文件协议的路径:
git remote add origin /z/somepath/repo.git
如果 z 映射到另一台机器上的共享。我不需要在您的场景中运行服务器。