git - 我应该 git clone 我的依赖项吗?

标签 git code-organization

假设我有一个项目将使用一些 Google API。为了让我更容易使用 API,我想使用 Google 提供的 PHP 库 ( https://github.com/google/google-api-php-client ) 我应该将它克隆到我当前的项目中,然后将它添加到 .gitignore 中吗?我应该克隆它并开始使用 git 模块,还是应该只复制我需要的文件并将它们添加到 .gitignore?

另一种情况是,当我使用我创建的并且在本地拥有的库时。我应该将它们克隆到当前项目中吗?我应该为我需要的文件创建符号链接(symbolic link)吗?

最后,有些库除了将代码托管在 github 中之外,还提供“独立”文件。以 jQuery 为例。在这些情况下,只下载他们提供的文件是否更好?还是将存储库克隆到当前项目中更好?

我猜这一切都与软件架构有关。有关于该主题的书籍推荐吗?

最佳答案

包管理器是为这个用例而设计的。

在 PHP 中,主要的包管理器是 Composer,其包可以在 Packagist.org 上找到。根据 Google API PHP 客户端存储库中的 composer.json 文件,其包为 https://packagist.org/packages/google/apiclient .

Composer 会将这些库(连同一个自动加载文件)安装在名为 vendor 的目录中,您可以将其添加到 .gitignore 中,这样它们的内容就不会被获取坚定的。 Composer 根据您的 composer.json 文件处理依赖项的安装和更新。

对于 JavaScript 库,http://bower.io/经常使用(尽管许多 JS 库也可以通过 Composer/Packagist 获得)。

这两种工具都允许使用任意和/或私有(private)存储库。

关于git - 我应该 git clone 我的依赖项吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24193258/

相关文章:

git - Jenkins:从另一个存储库而不是我要构建的存储库加载 Jenkinsfile

git - 将 git 提交存储到文本文件

python - 在 vscode 中使用注释为大纲制作段落

organization - 有一个大的实用程序文件是不是很调皮?

git - 如何创建多个 GIT 实例?

git - git 是否将差异信息存储在提交对象中?

ruby-on-rails - 如何在 RSpec 中包含多个模块?

php - 在 PHP 中组织类

python - 上传在 Github 上的虚拟环境中设置的 Django 项目

c++ - 组织源代码 (C++)