作为个人项目的一部分,我开始使用git而不是颠覆,也许我正在从中学习新东西。
设置存储库非常简单,配置我的Web服务器以提供git文件就像一个魅力;承诺,克隆,这里没问题。
但是,我在存储库中的项目设置存在一些问题。目前它看起来像这样:
project.git
\- mobileapp
\- artwork
\- backend
\- website
一旦一切正常, website
和mobileapp
应该与backend
进行通信。
我现在的问题是部署:当我想在我的服务器上部署backend
时,目前我需要签出整个存储库并将内容从backend
复制到我的webroot DIR。
由于似乎无法检查project.git/backend
的内容,我正在考虑将四个子项目分成四个git存储库,并增加了维护四个存储库的开销。
有没有更简单的方法来解决我的问题?
答案 0 :(得分:2)
你是正确的,没有特别简单的方法来检查部分Git存储库。 (截至1.7.0,Git支持sparse checkout,但这可能无法满足您的需求。)
典型的建议是将每个逻辑上独立的模块放入一个单独的存储库中。管理这些模块之间的关系有点困难。
一种方法是使用Git submodules。这会在父Git存储库中添加元数据,该存储库教授Git如何签出适当版本的子存储库。然后,您可以通过单独提交来破坏元数据来管理关系。
另一种方法是使用Android'} repo工具之类的外部工具。 Repo也保留了自己关于多个子库的状态,但与子模块不同,后者非常注重修订,repo
更注重分支。
这两种方法都是可行的,并且在如何思考模块之间的关系方面显示出哲学上的差异。这不一定是更简单的"当然,解决问题的方法。
答案 1 :(得分:1)
使用submodule
:
$ git submodule -h
E.g。
$ git submodule add git@github.com:<username>/backend.git backend
然后您还可以将backend
视为一个单独的项目。