如何在Symfony 2中使用git?

时间:2012-07-19 18:49:32

标签: php git symfony composer-php

我使用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"
    }
}

主要指南

1 个答案:

答案 0 :(得分:8)

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

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

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

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

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

php composer.phar update

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

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

php composer.phar install

当您第一次运行install并使用每个更新命令时,都会更新composer.lock。