7

我用 Composer 安装了 Symfony 2(遵循“主”指南),它创建了这个 .git/config 文件:

[core]
    repositoryformatversion = 0
    filemode = true
    bare = false
    logallrefupdates = true
[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = git://github.com/symfony/symfony-standard
    pushurl = git@github.com:symfony/symfony-standard.git
[branch "master"]
    remote = origin
    merge = refs/heads/master
[remote "composer"]
    url = git://github.com/symfony/symfony-standard
    fetch = +refs/heads/*:refs/remotes/composer/*

我不想干涉 Composer 在这里所做的事情,因为我不知道它是如何工作的,并且我希望将来能够更新供应商。

那么如何为“myapp”添加我自己的存储库并提交/推送到它?我通常做'git remote add origin ...'并且只使用它,但现在文件中有两个存储库,加上我需要添加的一个。

更新

我用这个命令安装了 Symfony2:

$ php composer.phar create-project symfony/framework-standard-edition myapp

这创建了 myapp/ 并安装了 Symfony2 + 依赖项。但是现在 composer.json 看起来还没有准备好用于我的项目,看起来我的项目本身就是 Symfony2(我认为):

{
    "name": "symfony/framework-standard-edition",
    "description": "The \"Symfony Standard Edition\" distribution",
    "autoload": {
    "psr-0": { "": "src/" }
    },
    "require": {
    "php": ">=5.3.3",
    "symfony/symfony": "2.1.*",
    "doctrine/orm": "2.2.*",
    "doctrine/doctrine-bundle": "dev-master",
    "twig/extensions": "dev-master",
    "symfony/assetic-bundle": "dev-master",
    "symfony/swiftmailer-bundle": "dev-master",
    "symfony/monolog-bundle": "dev-master",
    "sensio/distribution-bundle": "dev-master",
    "sensio/framework-extra-bundle": "dev-master",
    "sensio/generator-bundle": "dev-master",
    "jms/security-extra-bundle": "1.1.*",
    "jms/di-extra-bundle": "1.0.*"
    },
    "scripts": {
    "post-install-cmd": [
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ],
    "post-update-cmd": [
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
        "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile"
    ]
    },
    "config": {
    "bin-dir": "bin"
    },
    "minimum-stability": "dev",
    "extra": {
    "symfony-app-dir": "app",
    "symfony-web-dir": "web"
    }
}

大师指南

4

1 回答 1

8

您可以安全地删除.git文件夹并运行git init来初始化您自己的存储库,就像@m2mdas 建议的那样。

Composer 在这里没有做任何特别的事情。它只是克隆symfony-standard项目,然后安装它的依赖项。

Composer 会克隆存储库,但它不需要.git文件夹来工作。事实上,我认为它不应该默认克隆项目。可能他们会在未来的版本中修复它。

Composer 使用composer.json文件,您应该使用这个文件管理所有依赖项。您可以安全地对其进行编辑以添加或删除包。

然后,要更新软件包,只需运行:

php composer.phar update

从 composer.json 中删除的所有包都将被删除,您添加的包将被安装。现有软件包将更新到最新版本。

您应该将生成的 composer.lock 文件存储在您的存储库中,以确保您在运行时始终获得相同版本的依赖项:

php composer.phar install

composer.lock 会在您第一次运行 install 和每个更新命令时更新。

于 2012-07-19T21:54:49.460 回答