【发布时间】:2012-07-19 00:33:35
【问题描述】:
我用 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"
}
}
主指南
- http://symfony.com/doc/master/book/installation.html(第一步,下载symfony,我用了composer命令,如下图:http://symfony.com/download)
- http://symfony.com/doc/master/cookbook/workflow/new_project_git.html(这个似乎已经过时了,因为它说我们必须执行 'git init',但 git repo 已经由 composer 创建)
【问题讨论】:
-
您通常在 composer.js 文件中执行此操作。该文件指定您的代码需要什么。使用您的代码提交 composer.js。
-
@hakre 我不是要向我的代码添加依赖项,而是要对我的代码进行版本控制。
-
请放一个指向那些主指南的链接,也许我会更好地了解你所关心的,因为通常你只使用 git ;)(就像你一样)
-
你可以删除根目录下的
.git文件夹,再做git init。 -
AFIK
composer.phar create-project命令克隆项目,从composer.json文件中读取依赖项,克隆它们并将它们放入供应商目录并相应地生成autoload.php并删除.git文件夹在根目录。因此,如果您遵循 git 工作流文档,则不会有太大问题。正如您在文档中看到的,供应商文件夹列在.gitignore文件中。因此,如果您在删除.git文件夹后创建一个新的裸存储库,git 将不会监视供应商文件夹。您只需发出php composer.phar update即可更新库。它也是便携式的。
标签: php git symfony composer-php