2011-06-09 69 views
18

我的项目有许多测试电脑,都是100%的网外。我们使用USB驱动器也从这些PC传输文件。在这些PC的测试过程中会发生一些发展。我们传输更新文件的zip文件,其中的'版本信息'以zip文件的名称编码。如何在sneakernet环境中使用Git?

我的问题是如何最好地使用Git来管理项目办公室PC和测试PC之间的文件传输(或回购,或什么?)。这并不是常见的“使用案例”,通常针对的是笔记本电脑用户正在“脱网”并在某个角落咖啡馆中开发,然后重新上网。

有没有人在这种情况下获得经验?


另请git bundle create --all答案传送一个完整的回购

回答

12

使用Git与未连接的电脑很容易与git bundle

查看其man page

6

您还可以在USB驱动器上保存存储库的克隆。从离网PC“推送”到USB驱动器,然后从uSB驱动器“推送”到中央存储库。

将USB驱动器存储库与其自己的工作目录(也位于USB驱动器上)配合使用可能会更好。然后从离网PC“拉”到USB驱动器,并从USB驱动器“推”到中央存储库。发生这种情况时,您可以在USB驱动器上进行合并(如有必要)。

+0

你并不真的需要有一个“中央”资料库,如果你使用Git但是,是的,从USB驱动器上的存储库推送和拉动将起作用。 – 2011-06-10 00:55:36

+0

我对驱动器拥有完整存储库的担忧是腐败的规模和可能性,再加上每个开发人员都有自己的驱动器,因此同步可能会“丢失”。我确定它适用于某些工作流程。 – 2011-06-10 07:04:01

3

读者可能也会对using-git-on-usb-stick-for-travelling-code感兴趣,它们有很大的相似之处。它可能不适用于我的环境,其中有两个使用sneakernet使用/编辑动作(即两个独立的USB驱动器),但这是一种可能性。

这一切都取决于你有多少信任转移驾驶,如果工具可以工作的时候,你还没有得到它插上....

2

我发现这个教程甚至比男人更页有用因为它给的例子Git是如何检查的进入束和目标存储库共享一个共同的祖先承诺:

http://git-scm.com/blog/2010/03/10/bundles.html

+0

“我必须指定-b master,否则它由于某种原因找不到HEAD引用”,这是因为该bundle的克隆必须猜测哪个分支是HEAD分支,因为该信息未编码捆绑。尚未找到包含数据的向后兼容的方式。 – 2013-12-14 12:09:33