Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/flash/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
git存储库,建议?_Git_Multiple Repositories - Fatal编程技术网

git存储库,建议?

git存储库,建议?,git,multiple-repositories,Git,Multiple Repositories,我有几个存储库:一个管理数据库模式的存储库(由一些.sql文件组成)和一个Python SqlAlchemy模型(model.py)以及其他repo,它们只需要使用Python模型文件,而不需要使用*.sql文件 是否可以在任何其他repo中仅获取model.py文件(可能作为子模块) 目前: REPO "db": `-- model.py `-- sql `-- various *.sql files REPO "website" `-- various *.py files `--

我有几个存储库:一个管理数据库模式的存储库(由一些.sql文件组成)和一个Python SqlAlchemy模型(model.py)以及其他repo,它们只需要使用Python模型文件,而不需要使用*.sql文件

是否可以在任何其他repo中仅获取model.py文件(可能作为子模块)

目前:

REPO "db":
`-- model.py
`-- sql
    `-- various *.sql files

REPO "website"
`-- various *.py files
`-- needs model.py...?

REPO "random-helper-script"
`-- various *.py files
`-- needs model.py...?
因为这是一个Python项目,所以我可以将model.py隔离到一个文件夹中,并以这种方式将其作为一个模块


通过使用子模块,我可以单独将model.py分解成一个repo,也可以处理这样一个事实,即我使用子模块获得所有的*.sql文件。想法?

这是一种折衷。与需要将model.py放在单独的repo中相比,您对其他项目不感兴趣的sql文件所需的额外空间将model.py作为一个单独的存储库可能会感觉有点不舒服,因为在另外两个repo中需要它,而它实际上与sql文件一起属于第一个项目


假设model.py与sql文件耦合在一起,并且在sql文件存在时经常进行修改,我会在其他两个项目中使用第一个repo作为子模块。尽管他们可能不关心sql文件,但磁盘空间很便宜:)

这是一种折衷。与需要将model.py放在单独的存储库中并将其用作所有存储库中的子模块相比,您对其他项目不感兴趣的sql文件所需的额外空间。将model.py作为一个单独的存储库可能会让人感觉有点不舒服,因为您需要在另外两个repo中使用它,而它实际上与sql文件一起属于第一个项目


假设model.py与sql文件耦合在一起,并且在sql文件存在时经常进行修改,我会在其他两个项目中将第一个repo作为子模块使用。尽管他们可能不关心sql文件,但磁盘空间很便宜:)

@KingCrunch:如果你是说,我已经看过了。我不确定我是否想在网站项目本身中保留另一个项目的历史记录,哪个git子树可以。不知道确切的意思。然而,这与历史有关;)使用
--squash
git子树将从另一个项目创建一个提交,然后合并到“您的”中,因此历史记录将丢失。如果省略它,则在合并之前每次提交都会执行,这将使历史保持不变。两者中的一个应该适合你的需要:D我建议,你应该玩一玩。“我一开始也没弄明白。”@KingCrunch:如果你是说,我已经看过了。我不确定我是否想在网站项目本身中保留另一个项目的历史记录,哪个git子树可以。不知道确切的意思。然而,这与历史有关;)使用
--squash
git子树将从另一个项目创建一个提交,然后合并到“您的”中,因此历史记录将丢失。如果省略它,则在合并之前每次提交都会执行,这将使历史保持不变。两者中的一个应该适合你的需要:D我建议,你应该玩一玩。我一开始也没弄明白。