首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GitHub上的GitHub依赖项

GitHub上的GitHub依赖项
EN

Software Engineering用户
提问于 2011-05-01 02:24:16
回答 3查看 3.9K关注 0票数 14

我在框架的基础上编写了一个PHP框架和一个CMS。CMS依赖于框架,但框架作为CMS文件中的一个独立文件夹存在。我希望在GitHub上将它们作为单独的项目来维护,但我不希望每次更新框架时都会出现更新CMS项目的混乱。理想情况下,我希望CMS能够以某种方式将框架文件提取到预定义的子目录中,而不是物理地提交这些文件。

Git/GitHub有这个可能吗?如果是这样的话,我需要知道什么才能使它发挥作用?记住,我对Git的体验是非常非常基本的--我可以使用创建存储库并提交,连接到GitHub,仅此而已。我目前正在单独研究这些项目,所以到目前为止,我还不需要了解更多关于Git的知识,但是我想在将来向其他人开放它,我想确保我做得对。

另外,对于有依赖关系的项目,我理想的工作流应该是什么?关于这一问题的任何建议也将不胜感激。如果你需要更多关于我的设置的信息,只需询问评论。

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2011-05-01 05:30:31

首先,如果您真的想为此使用git,那么请考虑使用它的子模块功能

Git的子模块支持允许存储库作为子目录包含外部项目的签出。子模块维护自己的身份;子模块支持只存储子模块存储库位置和提交ID,因此其他克隆包含项目("superproject")的开发人员可以轻松地在同一修订版中克隆所有子模块。超级项目的部分签出是可能的:您可以告诉Git克隆任何子模块、部分子模块或所有子模块。

链接的页面包含详细的讨论,包括如何准确使用它的示例。

尽管如此,我建议不要将版本控制系统用于依赖关系管理,而应该开始使用可以为您处理这些事情的构建工具,例如Maven蚂蚁。在开发中甚至有一个名为Phing的特定于PHP的构建工具,但我还没有亲自使用它。在一篇讨论您的问题的文章中提到了这个问题:版本控制!=依赖关系管理

从长远来看,构建工具可能更适合使用,因为它们通常也支持不同的存储库类型、外部库(和不同的位置)和广泛的检查。但是,如果您只想集成这两个库,并且不需要任何额外的麻烦,那么子模块方法可能就足够了。

票数 11
EN

Software Engineering用户

发布于 2012-07-18 17:10:06

Git子模是管理git项目依赖关系的一种很好的方法。

如果你在寻找另一种方法:

作曲家可以为你做这一切。作曲家是php的依赖管理器。它的语法是json的。这是相当容易和便宜的使用。

更多关于作曲家:

Composer是PHP中的依赖管理工具。它允许您声明项目所需的依赖库,并将它们安装在您的项目中。

文件页上,您可以找到一个如何构造composer.json文件的示例:

代码语言:javascript
运行
复制
// Composer.json    
{

    "name": "acme/blog",
    "repositories": [
        {
            "type": "vcs",
            "url": "https://github.com/composer/hello-world"
        }
    ],
    "require": {
        "acme/hello-world": "dev-master"
    }
}

一旦您为项目创建了composer.json和composer.lock文件,您就可以轻松地安装您的依赖关系了:

composer.phar install或更新它们:composer.phar update或从包装工composer.phar create-project acmeproject创建特定项目

票数 6
EN

Software Engineering用户

发布于 2011-05-06 09:17:12

最近,我开始使用一个叫做俯卧撑的工具来管理我的项目的依赖关系。它支持PHP版本、PEAR包、Git存储库和SVN存储库,并允许通过"Pundlefile“轻松地指定它们。

您还应该配置您的依赖项,以便将Git/SVN签出放到一个不在版本控制(例如“供应商”)下的目录中,这样您就可以重新开始每次签出,并保持项目存储库的简洁性。

票数 1
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/72750

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档