如何在Symfony 2中使用git?

Cho*_*per 7 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/*
Run Code Online (Sandbox Code Playgroud)

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

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

UPDATE

我用这个命令安装了Symfony2:

$ php composer.phar create-project symfony/framework-standard-edition myapp
Run Code Online (Sandbox Code Playgroud)

这创建了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"
    }
}
Run Code Online (Sandbox Code Playgroud)

大师指南

Jak*_*las 8

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

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

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

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

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

php composer.phar update
Run Code Online (Sandbox Code Playgroud)

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

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

php composer.phar install
Run Code Online (Sandbox Code Playgroud)

第一次运行install时,每次更新命令时都会更新composer.lock.