将Git变更推送到共享网络驱动器

101

一个由四个人组成的团队如何使用Git(特别是Github for Windows)将本地更改推送到共享网络驱动器?

目前(不使用Git),我们必须将文件从网络驱动器复制到本地计算机,编辑文件,然后重新上传到共享网络驱动器。这是一个费时费力的过程,容易导致许多错误,但似乎Git可以帮助我们解决这个问题。

我们能够在共享驱动器上安装Git然后开始使用吗?

3个回答

141

不确定您是否已经找到适合您的解决方案,但我有一篇关于如何在Windows网络驱动器上完成这件事的文章:

http://tony.halcyonlane.com/blog/2011/09/22/Using-git-at-work-on-a-Windows-network-drive/

从命令提示符中切换到映射的驱动器。

$ cd g:

然后进入即将成为Git存储库的目录。

$ cd scripts

接下来创建一个空的Git存储库。如果没有使用--bare选项,将会出现问题,因此不要省略它。

$ git init --bare

如果您还没有本地Git存储库,那么您可以通过导航回本地驱动器来在任何地方克隆您的新存储库。

$ c:

$ cd work/scripts

$ git clone file://g:\scripts

当您克隆时,您会自动获得一个名为“origin”的远程分支,并且您可以在本地进行更改后随时推送到服务器进行安全保存。

$ git push origin master

如果您已经有一个Git存储库,只是想将其推送到共享驱动器上,则可以从本地Git目录中执行此操作。

$ git remote add origin file://g:\scripts

$ git push origin master


1
谢谢-我在家庭网络上的个人项目中确实做到了这一点。 - Martin Snyder
我按照这些步骤操作,但在运行 git push origin master 时出现以下错误: error: cannot spawn sh: No such file or directory fatal: unable to fork - NickStees
1
对于那些没有映射其共享驱动器的人,可以使用pushd(和popd)创建虚拟临时驱动器来进行导航。请参考链接:https://superuser.com/a/399885 - LoJo
1
我可以使用//192.168.1.1/shared/folder/repobare.git代替映射的G:\scripts吗? - Zennichimaro
你应该在 scripts/ 目录下创建一个名为 .git 的文件夹吗? - 3pitt
显示剩余3条评论

27

我们的团队目前正是这样做的。每个开发者都有以下内容:

  1. 在他们的本地机器上安装了 Git
  2. 可以访问个人共享驱动器 (L:)
  3. 可以访问共享组驱动器 (V:)

我们在 V: 驱动器上设置了“远程”仓库(使用 init -bare 命令),每个人都在其个人的 L: 驱动器上拥有一个克隆版本。所有更改都在 L: 驱动器上进行,并将其推送到 V: 驱动器上,然后其他开发人员稍后从其各自的个人仓库在其个人 L: 驱动器上对其进行拉取。这种方法没有任何问题,减少了对Git服务器的需求。


1
好的,太棒了!我需要先创建一个本地存储库,然后在共享驱动器上设置该存储库的远程存储库吗? - user1549303
1
@user1549303 - 这就是我们的做法。您可以使用 git init 创建本地仓库(我们的 L: 驱动器仓库),然后使用 git clone --bare 创建远程仓库(我们的 v: 驱动器仓库)(或者使用 git init --bare,然后从 L: 推送)。 - eykanal
@eykanal - 我的团队目前使用一种古老、可怕的源代码控制库,我们正在考虑转换到git。我们当前的库可以让我看到谁已经检出了一个文件但忘记提交更改。然而,由于git所有的存储库都是本地的,那么如何知道有人是否忘记推送到“v:”呢? - Kevin Buchan
5
建议您将您的评论作为一个新问题发表。 - eykanal
2
当两个开发者同时尝试推送到同一个共享仓库(比如V:)时,Git会如何反应?您是否遇到过并发推送操作的问题? - Jordi
@Jordi - 这是一个简单的竞态条件,第一个用户获胜。关于这个特定主题的更长回答在这里 - eykanal

2
你可以添加另一个指向你的网络驱动器的远程仓库 (git remote)
然后你可以像在github上一样进行推送和拉取。

链接目标已失效,请更新链接,好吗? - Radon8472

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