0

我正在使用一个框架,它或多或少地迫使我将自己的代码与框架代码混合在一起——也就是说,两者都不能整齐地隔离到它自己的子目录中。到目前为止,我通过使用 .gitignore 忽略所有框架代码将它们分开,但是当我需要升级框架时,我创建了一个升级分支并进行了升级,最初并没有意识到这意味着以前未跟踪/忽略的文件将是在新分支中跟踪,因此当我切换回主分支时将不再存在。

巨大的掌心时刻中恢复过来后,我想我必须改用 Git 子模块。然而,这带来的问题是,属于子模块的代码似乎必须保存在子目录中。来自Pro Git

子模块允许您将 Git 存储库保留为另一个 Git 存储库的子目录。

这真的是 git 子模块的限制,还是有什么办法解决?

4

1 回答 1

1

我相信是这样(一个子模块本身就是一个完整的 git 存储库,同一个文件夹不能包含两个 git 存储库)。我还相信,当文件夹中有子模块时Foo,外部存储库将忽略其中的所有内容,Foo只是它会跟踪子模块所在的修订版。

(警告:巨大的黑客攻击)但是,您可以有两个单独的 git 存储库,一个在另一个内部,并且“只是”对各自的 s 非常小心.gitignore-但是,您将无法使一个存储库控制另一个存储库的哪个版本存储库位于。此外,最外层的存储库必须是项目所在位置之外的一个文件夹级别(如果它需要包含该文件夹中的顶级文件并且您已经在其中拥有主存储库),因此如果您的项目/foo/bar/Project位于需要有框架仓库/foo/bar,除了主仓库在/foo/bar/Project.

于 2012-09-04T17:04:01.940 回答