【问题标题】:Git Subfolder into its own Repository to Use as Submodule Elsewhere将 Git 子文件夹放入自己的存储库中,以在其他地方用作子模块
【发布时间】:2015-08-19 18:00:45
【问题描述】:

我的文件夹结构类似于:

src

  • .git
  • 文件夹 1
    • 文件夹1文件1
    • Common(这个文件夹里面有commonfile1和commonfile2)
  • 文件夹 2
    • 文件夹2文件1
    • Common(这个文件夹里面有commonfile1和commonfile2)
  • 普通
    • commonfile1
    • commonfile2

我曾经在一个 SVN 存储库中拥有它,最近搬到了 git,我正在学习它。在 SVN 中,Common 是它自己的存储库,Folder1 和 Folder2 使用对主 Common 文件夹的外部引用来引用 Folder1 和 Folder2 下的 Common 文件夹。因此,每当我想对 commonfile1 进行更改时,我所要做的就是在 Folder1 中更新 SVN,然后 Common 内部的最新更改就会到来。

所以考虑到 git 中的相同文件夹结构(src 下的所有内容都在同一个 git repo 中)我怎样才能实现相同的功能?我只是希望能够像子模块一样使用 Folder1.Common 和 Folder2.Common。如果主 Common 文件夹属于同一主存储库,这是否可能?

【问题讨论】:

    标签: git git-submodules git-subtree


    【解决方案1】:

    您可以使用

    1. 拥有 2 个或更多单独的存储库并使用 git submodule。我个人不喜欢它,因为它有点麻烦。

    2. 使用 simlink 并将所有内容都放在一个存储库中。

    选择取决于存储库的大小和所有权。

    【讨论】:

    • 我考虑将 Common 拆分到自己的存储库中。 Common 仅包含一堆实用的 javascript 函数,因此在创建分支时不太可能在分支中包含对 common 的更改。如果 Common 中的更改是我想在一个分支中隔离的东西,这对于单个存储库来说是一个很好的例子,但我想我不会做那么多,所以我可以使用标准的子模块场景。我不了解 simlinks,我会探索这些。
    • 请小心,符号链接有点棘手。如果您的 Commons 是一个独立的库,并且您最终可能会打开它或让其他人维护它 - 将其设为单独的存储库并使用子模块可能是一个更好的主意。
    猜你喜欢
    • 2013-03-03
    • 2019-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多