【问题标题】:How to use multiple git repositories in one bndtools workspace如何在一个 bndtools 工作区中使用多个 git 存储库
【发布时间】:2016-08-17 18:27:03
【问题描述】:

我正在使用带有几个专用工作区的 eclipse BndTools,每个工作区都存储在一个 git 存储库中,到目前为止我一直很开心。

我一直在通过复制项目在工作区之间共享项目。但最近决定将通用代码拉入一个共享代码 git 存储库。在 Eclipse 中,这很简单,只需在工作区中使用子文件夹,每个存储库一个。

但令我惊讶的是,bndtools 要求我在文件库中的项目旁边放置一个 cnf 项目。同时我的工作空间中只能有一个 cnf 项目。这实际上意味着我的所有项目都应该是同行。

这反过来意味着我不能使用多个 git 存储库,因为它们不能共享同一个目录。除非我将每个项目拆分到它自己的存储库中并且有 50 多个项目,否则这显然不是我想要去的地方。

我知道 eclipse 可以做到这一点,但是有没有办法让 bndtools 玩球?

【问题讨论】:

    标签: java eclipse git directory bndtools


    【解决方案1】:

    这实际上意味着我的所有项目都应该是同行。
    ...

    这反过来意味着我不能使用多个 git 存储库,因为它们不能共享同一个目录。除非我将每个项目拆分到自己的存储库中

    这是子模块来救援的地方。

    Submodules 始终允许将外部存储库嵌入到源代码树的专用子目录中指向一个特定的提交。


    How to use submodules

    # Create each project in its own repository
    
    # now add the desired submodule to your project
    git submodule add <url>
    
    # now init/update one by one or recursively all at once
    git submodule init
    git submodule update 
    

    【讨论】:

    • 感谢 CodeWizard。我希望有一个不需要我为工作区中的每个项目初始化 git 存储库的解决方案。但很高兴知道,如果我必须走这条路,至少 Git 已经涵盖了我。
    • 使用子模块,内容是根存储库,每个子模块都可以共享。它使用子树的另一种方式或多或少相同。
    • 我正在尝试这个,但这似乎是为上游更改而构建的,您可能想要包含外部库。但是由于这些库对我来说不是外部的,所以我想对它们进行大量更改。我的幼稚实验最终在其中一个子模块中脱离了头脑。我还没做完实验。但是,当您说这将像我在单个存储库中工作一样向上游推送更改时,我确实理解您?
    • 是的。每个子模块都是一个独立的存储库,有自己的分支、标签等。您只需拉取所需的版本(或最新版本),当您处理它时,您可以像往常一样提交。重要的是,如果您在父文件夹上执行 git status 时进行更改,您将看不到更改,因为它是一个独立的存储库。
    • 据我了解,这不是唯一的问题。子模块中的任何更改都需要我 cd 进入该子模块,手动提交并推送。尽管自今年早些时候以来有一条推送所有子模块的捷径。但是由于更改很容易影响 50 多个存储库中的任何一个,这将增加大量的开销。我认为子模块不会解决我的问题。但是感谢您的建议,我现在对 Git 的了解比我开始这一天时所知道的要多...
    猜你喜欢
    • 1970-01-01
    • 2013-01-28
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 1970-01-01
    • 1970-01-01
    • 2016-03-12
    • 1970-01-01
    相关资源
    最近更新 更多