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

dre*_*ves 18 git

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

(用户@bee和我实际上有这个问题,因为我输入了这个,但显然不是我发送的.在我们的例子中我们都有Mac笔记本电脑 - OSX Snow Leopard - 但我认为通常更好地对待这个问题.)

Kin*_*nch 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
Run Code Online (Sandbox Code Playgroud)

另一台机器

cd /pat/to/local/repo
git remote add usb /path/to/usbstick/repo
git fetch usb --all
Run Code Online (Sandbox Code Playgroud)


ham*_*mar 17

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

$ git remote add cohacker myuser@cohackers-laptop:/path/to/repo.git
Run Code Online (Sandbox Code Playgroud)

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

$ git pull cohacker master
 ... hack away ...
$ git push cohacker master
Run Code Online (Sandbox Code Playgroud)


Von*_*onC 10

与您的方案兼容的一个解决办法是通过USB共享坚持一个文件通过git bundle

这允许您:

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

  • @William:我更多地暗指"没有互联网"的部分,而不是"荒岛"部分问题:"git bundle"是转移回购的方式,没有任何联系,这是我的观点. (2认同)