假设我在git仓库中安装了Project1。在Project1中有一个子文件夹,我想包含在Project1 +(Project2,Project3等)中。“include”我不是指复制粘贴。我想要一个Project1的引用,这样如果我对Project1进行更改,我可以自动将这些更改集成到Projects1 +中。此外,我想将它放在Project1 +中的多个位置。
示例:
Project1
|-Subfolder1
|-Stuff I want...
|-README.md
Project2
|-Subfolder1 <- from Project1
|-SomeOtherFolder
|-Subfolder1 <- from Project1
|-README.md
Git子模块不起作用,因为:
The subtree merge strategy无效,因为:
现在请记住我是git的新手所以上述结论可能是错误的。但这是我通过研究和实验发现的。
我提出的可能解决方案是:
这种有点工作。我修改了Project1主分支,并且能够将更改合并到新分支中,因此更新子模块,但这似乎不必要地复杂(考虑到它在SVN中的容易程度)。此外,当我合并Project1中的更改时,似乎认为已删除的文件存在冲突;即更新Project1只是一个巨大的PITA。也许我需要一个不同的合并策略?
但主要是我问的是这条路是否正确?
为了记录,SVN Externals非常容易。所以用例就在那里。我意识到完全有可能没有人用git这样做。经过几天的研究,我可以在网上找到的解释都归结为“重组你的项目,以便每个回购都有你想要分享的东西”;即Project1的“子文件夹”成为它自己的回购。我希望这不是最后的答案。
谢谢!
答案 0 :(得分:2)
无论如何,对于所有可能的工作流程,您必须使用3个存储库:Subfolder1变为单独的repo,您将在“superrepos”中使用