2019-08-02 14:49



I have a scenario in which the machine I'm deploying to doesn't have direct access to the Git repo. So the solution is that I have a Git bundle of my repo copied locally to the machine where the code will deploy.

So it looks like this.


If I want to use this with the normal git client, I could do

git clone /var/local/repos/MyGitRepo/MyGitRepo.git MyGitRepo

And I have a checkout of the MyGitRepo in the MyGitRepo directory.

My question is, when I use composer to install the MyGitRepo, I have to refer to the MyGitRepo checked out Git repo, rather than the /var/local/repos/MyGitRepo/MyGitRepo.git

So the repositories looks like this:

 "type" : "vcs",
  "url" : "/where/i/put/MyGitRepo"

This works, but can't I just point composer to the git repo rather than the checked out git repo?

I feel like this should work:

 "type" : "vcs",
  "url" : "/var/local/repos/MyGitRepo/MyGitRepo.git"

I get this problem reported.

The requested package mygitrepo could not be found in any version, there may be a typo in the package name.

If I have to point composer to a checked out local repo, that's fine, but it seems like I should be able to use that .git bundle as I would any Git repo.

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答


  • donglaoping9702 donglaoping9702 2年前

    You can use the path type of repo to create a symlink in your vendor folder that will point to your clone. Taken from the docs:

        "repositories": [
                "type": "path",
                "url": "/var/local/repos/MyGitRepo/MyGitRepo.git"
        "require": {
            "my/package": "*"
    点赞 评论 复制链接分享