Git回收多台机器 - 备份和保持同步

时间:2010-04-30 00:35:53

标签: git synchronization repository

我是git的新手所以请随意RTFM我...

我有多个开发站点(其中没有一个可以通过网络相互通信),并且我正在处理一些项目(少数人)。

我最理想的是在每个站点一个可以从中取出的集中式存储库,但开发将在我们自己的(个人)存储库中进行。然后我希望能够在集中式回购中进行同步(例如通过USB密钥)。

我希望在每个地点都有一个集中的回购:(1)我是git的新手并且通过玩游戏打破我的(个人)本地回购和(2)一些项目被搁置所以我希望能够通过删除它们来释放磁盘空间。这是我问题的“备份”部分。

我还希望能够使用'git clone --bare'作为我的集中存储库(以及USB密钥存储库?),因为我们不需要完整的结账,只需要git的好处。

然而,我似乎无法获得一个完整的回购工作作为我可以推动的回购。我使用'git remote'来设置一个远程原点(类似于http://toolmantim.com/thoughts/setting_up_a_new_remote_git_repository),但我无法让'git push'工作 - 似乎我需要一个签出的回购。

有没有其他人使用这种回购/开发结构,还是有一些我缺少的git用法基础?

我想到的解决方案可能不起作用 - 如果我在每个站点都有一个'git clone --bare'然后在我的可移动媒体上使用git repo,那么我可以为每个站点设置遥控器( 'pull')将我的USB密钥与每个repo同步。但是,我可以从USB密钥更新网站仓库吗?我可以从USB推出吗?

2 个答案:

答案 0 :(得分:2)

好的,首先我要说的是,无法连接到互联网的安全性的全部前提是完全错位的。我不应该在不知道所有事实的情况下判断,但考虑到你在StackOverflow上提出这样一个基本问题,这意味着你不是一个开发下一代轨道枪的跨国公司,并且经常遭受黑客袭击

剥夺互联网连接开发人员的安全性提高了约0.01%并降低了安全性,因为他们无法将相关内容研究约1000%。您需要首先为负责任的人提倡更好的环境,并在某个服务器上拥有托管存储库。您可以使用gitious或gitosis支付私有github存储库或在linux上推出自己的git repo。

至于实际问题。您只需将推入,而不是从 推送您的裸存储库。你在最后一段是正确的轨道。

  1. 在每个站点设置一个裸仓库。
  2. 在USB记忆棒上设置一个裸仓库。
  3. 开发人员将他们的更改推送到网站仓库。
  4. 在每个网站的支架上设置遥控器。
  5. 从每个网站回购中拉出USB记忆棒。
  6. 理论上这是一个很好的解决方案,但是你会发现在同步回购时你会在某些时候遇到冲突。在这种情况下,开发人员需要解决这些冲突。

    更好的解决方案是没有网站存储库。由于整个存储库包含在目录中,因此您可以根据需要在本地制作尽可能多的副本。这也将解决你的“玩弄”问题。

    如果开发人员需要共享代码,他们可以互相拉扯。然后USB棒进来,他们拉/推他们的变化。这样,造成冲突的人就是负责合并的人。

    让我再次重申这将带来多大的生产力负担。拥有一个涉及多个人的共享存储库是很困难的。由于手动同步站点的时间延迟,如果有错误,则可能会在今天修复,但是后一天不会修复。

答案 1 :(得分:0)

备份的另一个解决方案是:

<强> git bundle

那样,你有:

  • 只能在USB密钥上复制一个文件
  • 您可以直接从该套装中提取以更新您的本地仓库

注意:您很幸运能够使用USB密钥。在我们公司,那些USB端口很久以前就被封锁了;)另一个“安全”(大双引号)测量......