使用composer加载自定义git存储库

使用composer加载自定义git存储库,git,composer-php,Git,Composer Php,我正在写一个框架,它可以用于我未来的项目。 我想把这个框架放到一个私人托管的git服务器上,并在我未来的项目中用composer加载它 我可以知道当我git init时,应该使用“-bare”吗? 我曾经创建“裸”回购协议,但作曲家说找不到该包。我四处搜索,相信这是由于“composer.json的缺失”。 然而,如果没有“-bare”,我甚至无法将代码推送到服务器。我将框架“git克隆”到另一个位置,并使用composer加载该位置,仍然失败 我尝试了以下两个版本,都失败了: "reposit

我正在写一个框架,它可以用于我未来的项目。 我想把这个框架放到一个私人托管的git服务器上,并在我未来的项目中用composer加载它

我可以知道当我git init时,应该使用“-bare”吗? 我曾经创建“裸”回购协议,但作曲家说找不到该包。我四处搜索,相信这是由于“composer.json的缺失”。 然而,如果没有“-bare”,我甚至无法将代码推送到服务器。我将框架“git克隆”到另一个位置,并使用composer加载该位置,仍然失败

我尝试了以下两个版本,都失败了:

"repositories": [
    {
        "type": "vcs",
        "url": "https://server/git/sdk/"
    }
]

"repositories": [
    {
        "type": "package",
        "package": {
            "name": "vendor/sdk",
            "version": "master",
            "source": {
                "url": "https://server/git/sdk/",
                "type": "git",
                "reference": "master"
            }
        }
    }
]

谢谢。

我正在参考有关如何从VCS加载软件包的官方文档:

要要求私有项目B,您需要公共项目A的
composer.json
文件中的两件东西:

  • 将存储库定义为类型
    vcs
    ,并带有指向服务器上专用存储库的URL
  • 需要它

    {
        "name": "project A",    
        "description": "public project A requiring private project B",
        "require": {
            "vendor/my-private-repo": "dev-master"
        },
        "repositories": [
            {
                "type": "vcs",
                "url":  "git@your-server.com:vendor/my-private-repo.git"
            }
        ]
    }
    
  • 然后运行Composer。它将把私有项目B放入项目A的供应商文件夹中


    我可以知道当我git init时,应该使用“-bare”吗?我曾经创建“裸”回购协议,但作曲家说找不到该包。我四处搜索,相信这是由于“composer.json的缺失”

    git init--bare
    创建一个没有工作树的存储库。这意味着存储库不包含源文件的工作副本或签出副本。只有repo的git修订历史记录存储在存储库的根文件夹中(而不是.git子文件夹中)

    我将框架“git克隆”到另一个位置,并使用composer加载该位置,仍然失败

    您不需要
    git clone
    git init
    存储库来存储本地副本,只需使用Composer直接从专用服务器获取即可

    我们有以下情况:

    • 带有
      composer.json
      的项目A应该从私有回购获取项目B
    • 我们将git排除在外,让Composer进行提取。不要手动获取
    • 并且只关注的
      composer.json
      方面来解决这个问题(见上文)

    旁注:您发布的第二个
    存储库
    定义定义了一个
    。 这在中进行了描述
    您可以免费要求将私有repo作为包,但此处不需要它,因为上面的
    composer.json
    应该可以正常工作。

    “选项”:{“ssh2”:{“username”:“dummy”,“privkey_file”:“}}我需要一个密钥才能进入主机。我正在Windows上使用Netbeans。我应该如何定义密钥文件路径?是否也需要公钥文件?我可以知道如何在URL中指定端口吗git@your-server.com:vendor/my-private-repo.git?谢谢好的,我已经搞定了。我使用Jens提到的配置,但是用SSH替换url。我在“C:\Users\yourname\.SSH\”中放置了一个带有SSH密钥路径的“config”。现在一切都很好。FYR这是“配置”的外观: