两台笔记本电脑如何在没有互联网的情况下互相推送/拉动

时间:2011-05-10 09:59:06

标签: git

说我的合作黑客,我发现自己在一个荒岛上。通常我们推送并拉到github以便彼此同步。当我们与外界无关时,您会如何建议我们这样做?

(用户@bee我实际上遇到了这个问题,虽然显然不是我发送的。在我们的例子中我们都有Mac笔记本电脑--OSX Snow Leopard - 但我认为它会是一般来说,更好地对待这个问题。)

5 个答案:

答案 0 :(得分:19)

拿SD卡,或USB记忆棒等。在那里创建一个裸存储库。然后一个推到那个回购,卸下卡/棒,把它交给另一个,那个从它拉出来。

cd /path/to/usbstick
mkdir repo
cd repo
git init --bare
cd /path/to/local/repo
git remote add usb /path/to/usbstick/repo
git push usb --all

另一台机器

cd /pat/to/local/repo
git remote add usb /path/to/usbstick/repo
git fetch usb --all

答案 1 :(得分:17)

最简单的解决方案可能只是为彼此的笔记本电脑设置ad-hoc无线和SSH。您可以使用

设置遥控器
$ git remote add cohacker myuser@cohackers-laptop:/path/to/repo.git

现在你可以推送/拉动内心的内容:

$ git pull cohacker master
 ... hack away ...
$ git push cohacker master

答案 2 :(得分:10)

与您的方案兼容的一个解决方案是通过 git bundle

分享USB记录一个文件

这可以让你:

  • 考虑将一个文件('bundle')作为上游仓库,每个用户可以更新所述捆绑包,并从中获取新的提交。
  • 避免尝试在裸仓库结构中同步大量文件/元数据。
  • 不依赖任何网络/服务器进程。

答案 3 :(得分:2)

如果您在同一个网络上,那么在本地运行git服务器应该有效。一个人会推送到他自己的机器,另一个推送到另一台机器(基于本地IP)。

答案 4 :(得分:2)

对于初学者 - 获取此书 - http://book.git-scm.com/

不可或缺

其次,第40页有一个标题为“分布式工作流”的部分

这应该涵盖你需要的东西,只需使用ssh作为你的通信协议(假设你熟悉命令行中的ssh)