如何在运动鞋网环境中菊花链git存储库

时间:2013-09-11 14:57:45

标签: linux git git-clone usb-drive git-fetch

我正在为嵌入式应用程序开发一些代码。我的嵌入式系统运行linux / git并且有一个本机编译器,但它们没有网络硬件或功能。我能够很高兴地在这些嵌入式系统上安装USB驱动器。

我的桌面PC上有源代码的主(裸)git存储库,并在存储库的克隆中进行了相当多的开发。简单/基本的git工作流程很好。

我想到的是在USB拇指驱动器上创建一个--bare克隆存储库,然后在我的嵌入式系统之间运行网络。

我希望每个嵌入式系统上的git存储库都是来自USB存储库的克隆。

所以我设想的工作流程是这样的:

  1. 对我的一个嵌入式系统进行一些更改。添加并提交给本地git clone。
  2. 将USB拇指驱动器安装到嵌入式系统,并将更改从本地存储库推送到拇指驱动器存储库。
  3. 将USB拇指驱动器安装在我的桌面PC上,并将这些提交推送到主/裸存储库
  4. 将更改拉入我的桌面开发树。
  5. 然后我想做相反的事情:

    1. 更改我的桌面工作git树,添加,提交,将它们推送到主存储库。
    2. 将拇指驱动器安装在我的台式PC上,将主更改拉入/取出拇指驱动器上的git clone。
    3. 将拇指驱动器安装在嵌入式系统上,将更改拉入/取回嵌入式系统上的本地工作树...
    4. 最终目标是能够在我的台式PC或任何嵌入式系统(没有网络功能)上进行开发更改,并使所有内容保持同步。

      这可能吗?如果没有大量的git voodoo,这可能吗?

      我已经坐了好几次来完成这项工作,并继续遇到路障。我不认为我想在拇指驱动器上使用--mirror'd存储库,因为我希望能够通过拇指驱动器向两个方向推送更改。

      我可以将官方主存储库放在拇指驱动器上,让我所有的工作副本都指向我想的,但如果它被埋没,这并不能让我对主副本的安全性产生温暖的模糊感觉。

      我希望能找到一些我能理解并做到的“简单”的东西!

1 个答案:

答案 0 :(得分:1)

[这里假设我们只是在讨论没有任何额外内容或插件的常规git]

是的,的确可以。这里有几点需要记住:

  • git存储库只是“.git”目录
  • git存储库不会“知道”它在哪里,因此您可以移动或复制它而不会出现问题
  • git存储库有一个文本文件列出其“遥控器”所在的位置(即它可以推/拉的位置)
  • 没有“master”git存储库这样的东西:所有存储库都是相同的

所以,在最原始的情况下,你可以用“cp -a”复制.git目录,你就可以了。

当然,这不是最好的方式......你可能想推拉,想要那种东西。因此,我们可以做的是将服务器上的存储库称为usb棒和桌面的“远程”(即我们的“主”)存储库。

将usb stick存储库称为嵌入式系统的“远程”。

最简单的方法如下(你可能已经完成了前两个):

  • 在您的服务器上创建存储库
  • git将服务器存储库克隆到桌面上的目录
  • 将USB棒插入桌面
  • git将服务器存储库克隆到usb stick上的目录
  • 取下USB棒并将其插入嵌入式系统
  • git将存储库从你的usb棒克隆到你的嵌入式系统(对所有嵌入式系统重复最后两步)

就是这样。您现在可以从嵌入式推送到usb,从usb推送到服务器,从服务器推送到桌面和usb。